Skip to main content

B2B Mobility Toll Transaction Data 1.0.0

Получаване на актуализации за промяна на състоянието, поддръжка и версия за този API.

API на Shell B2B Mobility за данни за транзакции по пътни такси – Ръководство за бързо стартиране

Версия на API: 1.0.0 | Удостоверяване: OAuth 2.0 | Статус: Производствена версия

Общ преглед

API-то на Shell B2B Mobility за данни за транзакции с пътни такси е API, базирано на REST, което осигурява изчерпателен достъп до записи за транзакции с пътни такси и свързани данни за клиентите на Shell Mobility. Този API позволява на разработчиците да извличат, филтрират и анализират данни за транзакциите за пътни такси чрез програмиране с цел съгласуване на сметки, проверка на фактури, управление на разходите и спазване на нормативните изисквания.

Основни функции

  • Извличане на данни за транзакции за пътни такси по номер на сметка
  • Филтриране на транзакциите по период (начална и крайна дата)
  • Търсене по статус на фактурата и VRN (регистрационен номер на превозното средство)
  • Разширени възможности за сортиране по няколко полета
  • Поддръжка на разбиване на страници за големи масиви от данни
  • Гъвкаво филтриране по полета за оптимизиране на обема на отговора
  • Подробна информация за пътните такси, включително точки на влизане/излизане
  • Поддръжка на множество мрежи за пътни такси и оператори

Удостоверяване

OAuth 2.0 (стандартен метод за удостоверяване)

API-то за данни за транзакции за пътни такси на Shell използва потока „Клиентски идентификационни данни“ на OAuth 2.0 за сигурно удостоверяване.

Процес на OAuth 2.0

Стъпка 1: Получаване на токен за достъп

Искане на токен за достъп от крайната точка за токени на OAuth:

POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=your-client-id&client_secret=your-client-secret

Стъпка 2: Използване на токена за достъп в заявките към API

Authorization: Bearer 
Content-Type: application/json
RequestId: eb621f45-a543-4d9a-a934-2f223b263c42

Управление на токени

Най-добри практики за управление на токени:

  • Токените за достъп имат ограничен срок на валидност (обикновено 15 минути)
  • Въведете кеширане на токените, за да избегнете ненужни заявки за токени
  • Обновете токените преди изтичането на срока им, за да гарантирате непрекъсната услуга
  • Никога не споделяйте client_secret и не го вграждайте в код от страна на клиента

Среди

API-то е достъпно в две среди:

Среда Базов URL Цел
Производствена https://api.shell.com/toll-data/v1 Производствена среда на живо
Тестване (UAT) https://api-test.shell.com/toll-data/v1 Среда за тестване и разработка

URL адреси на OAuth токени:

Среда URL на токена
Производствена среда https://api.shell.com/v2/oauth/token
Тестова (UAT) https://api-test.shell.com/v2/oauth/token

Съвет: Винаги тествайте интеграцията си в тестовата среда, преди да преминете към производствена среда.

Бързо стартиране

1. Получете вашите OAuth идентификационни данни

2. Получаване на токен за достъп

Първо, получите своя OAuth токен за достъп:

Пример с 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=your-client-id&client_secret=your-client-secret"

Отговор:

{
  "access_token": "eyJhbGciOi*******5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 899
}

3. Изпратете първото си API заявка

Пример: Търсене на транзакции за пътни такси

Пример с 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
}'

Пример за отговор:

{
  "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": "Италия",
 "PurchasedInCountryCode": "IT",
 "CardNumber": "707737*******334272",
      "CardId": 123456789,
      "CardGroupName": "Shell Fleet Solutions Consorzio",
 "VehicleRegistration": "KN 00000",
 "CostCenter": "100",
 "SystemEntryDate": "20260123",
      "Време на въвеждане в системата": "13:14:25",
 "Дата на транзакцията": "20260120",
      "TransactionTime": "10:30:00",
 "PostingDate": "20260123",
 "PostingTime": "00:00:00",
      "PayerNumber": "NL20016398",
 "AccountNumber": "NL20027701",
 "Име_на_сметката": "Име на тестова сметка",
 "Дата_на_началото": "20260120",
 "Час_на_началото": "06:47:41",
 "Дата_на_края": "20260120",
      "EndTime": "07:30:15",
 "TollGateEntry": "ROMA NORD",
 "TollGateExit": "BRENNERO",
 "DistanceDriven": "71.6",
      "Описание на маршрута": "ROMA NORD - BRENNERO",
 "Тип на транзакцията": "Пътен данък",
 "Код на продукта": "14",
 "Описание на продукта": "Пътен данък",
 "Нетна сума на транзакцията": "127,1",
      "Данък по транзакцията": "0,0",
 "Брутна сума на транзакцията": "127,1",
 "Валутен код на транзакцията": "EUR",
 "Статус на транзакцията": "Отчитане",
      "Номер на фактурата": "8600397548",
 "Дата на фактурата": "20260125",
      "Статус на фактурата": "Фактурирана",
 "Начин на плащане": "Плащане след доставка",
 "Сериен номер на ОБУ": "00049000000836932426",
      "EmissionClass": "Euro 6",
 "ContractID": "fb75eb53-46eb-450b-862e-6045002c3fa8",
      "ShellTransactionID": "04176c5c-e7b2-49c8-bcb3-23d07ba583f2",
 "TollOperator": "Toll4Europe",
      "TollDomain": "Toll4Europe",
 "TariffRelevantInformation": "Клас на превозното средство: 2, Брой оси: 2, Категория на пътя: Магистрала",
 "AdditionalTransactionInfo": "Местоположение: 1",
 "TCInvoiceNumber": "12343343",
 "TCInvoiceDate": "20260123"
    }
  ]
}

Справочник за API крайни точки

Транзакции за пътни такси

Крайна точка Метод Описание
/toll-data/v1/transactions/search POST Извличане на данни за транзакции за пътни такси с гъвкаво филтриране и разбиване на страници

Типични случаи на употреба:

  • Извличане на транзакции за пътни такси по диапазон от дати
  • Филтриране по статус на фактурата (Фактурирани, Нефактурирани, Всички)
  • Търсене по регистрационен номер на превозното средство (VRN)
  • Филтриране по група карти
  • Сортиране на транзакциите по няколко критерия
  • Изберете конкретни полета, за да оптимизирате размера на отговора

Често срещани случаи на употреба

В тази секция често срещаните бизнес сценарии са съпоставени с моделите на използване на API, за да ви помогнат бързо да определите как да използвате API за вашите конкретни нужди.

Сценарий на употреба 1: Ежедневно съгласуване на транзакциите за пътни такси

Сценарий: Трябва ежедневно да съгласувате всички транзакции за пътни такси от вашия автопарк за счетоводни цели.

Препоръчително API: /toll-data/v1/transactions/search

Защо този API: Този ендпойнт предоставя изчерпателни подробности за транзакциите за пътни такси с гъвкаво филтриране по дата, поддържа както фактурирани, така и нефактурирани транзакции и включва пагинация за големи масиви от данни. Идеален за ежедневни работни процеси по съгласуване.

Ключови параметри:

  • FromDate и ToDate – Задайте вчерашната дата за ежедневно съгласуване
  • Търсене.InvoiceStatus - Използвайте „Всички“, за да включите както фактурираните, така и нефактурираните транзакции
  • Размер на страницата – Задайте стойност 100 за ефективно извличане на данни
  • Филтър - Използвайте „Всички“, за да получите пълни подробности за транзакциите

Пример за употреба 2: Проверка и потвърждаване на фактури

Сценарий: Получили сте фактура и трябва да проверите всички подробности и такси за транзакциите за пътни такси.

Препоръчително API: /toll-data/v1/transactions/search

Защо този API: API-то предоставя подробна информация за транзакциите за пътни такси, включително номера на фактури, дати, суми и подробности за мрежата за пътни такси. Идеално е за валидиране на фактури, тъй като съответства на структурата на фактурата.

Ключови параметри:

  • Search.InvoiceStatus - Задайте стойност „Invoiced“, за да извлечете само фактурираните транзакции
  • FromDate и ToDate – Задайте датите на фактурирания период
  • Filter - Посочете полета като „InvoiceNumber, InvoiceDate, TransactionGrossAmount“ за целенасочена валидация

Пример за употреба 3: Анализ на използването на пътни такси за превозните средства от автопарка

Сценарий: Трябва да анализирате моделите на използване на пътни такси за конкретни превозни средства от автопарка си, за да оптимизирате маршрутите и да намалите разходите за пътни такси.

Препоръчително API: /toll-data/v1/transactions/search

Защо този API: API-то позволява филтриране по регистрационен номер на превозното средство (VRN) и предоставя подробна информация за маршрута, включително входни/изходни точки, изминато разстояние и такси за ползване на пътищата. Идеален за анализ на ниво превозно средство.

Ключови параметри:

  • Search.VehicleRegistrationNumber – Посочете VRN за анализ
  • FromDate и ToDate - Задайте период за анализ (например последните 30 дни)
  • SortOption - Използвайте 1 (Дата на транзакцията по възходящ ред) за хронологичен анализ
  • Filter - Включете полета като "RouteDescription, DistanceDriven, TollGateEntry, TollGateExit, TransactionGrossAmount“

Пример за употреба 4: Проследяване на разходите по групи карти

Сценарий: Управлявате няколко групи карти и трябва да проследявате разходите за пътни такси по групи карти с цел разпределение на бюджета и отчитане на разходните центрове.

Препоръчително API: /toll-data/v1/transactions/search

Защо този API: API-то поддържа филтриране по група карти и включва информация за разходните центрове, което го прави идеално за проследяване на разходите и отчитане на ниво група карти.

Ключови параметри:

  • Search.CardGroup – Посочете името на групата карти или използвайте „Всички“ за всички групи
  • FromDate и ToDate – Задайте отчетния период
  • Филтър – Включете „CardGroupName, CostCenter, TransactionGrossAmount, TransactionNetAmount, TransactionTax“
  • Опция за сортиране – Използвайте 3 (Сума на транзакцията по възходящ ред) за анализ на разходите

Пример за употреба 5: Отчети за пътни такси за няколко сметки

Сценарий: Управлявате няколко сметки и трябва да генерирате консолидирани отчети за пътни такси за всички сметки.

Препоръчително API: /toll-data/v1/transactions/search

Защо този API: API-то поддържа търсене в няколко сметки (препоръчват се 2–5) в едно-единствено заявка, което намалява броя на API-извикванията и подобрява производителността при сценарии с няколко сметки.

Ключови параметри:

  • AccountNumber - Посочете номера на акаунти, разделени със запетая (максимум 2–5 за оптимална производителност)
  • FromDate и ToDate – Задайте ги според отчетния период
  • PageSize - Използвайте по-големи размери на страниците (например, 100–500) за по-добра производителност

Пример за употреба 6: Наблюдение на транзакции без фактура

Сценарий: Искате да наблюдавате транзакции за пътни такси без фактура, за да прогнозирате предстоящи фактури и да управлявате паричния поток.

Препоръчително API: /toll-data/v1/transactions/search

Защо това API: API-то позволява филтриране по статус на фактурата, което улеснява идентифицирането на транзакции без фактура и оценката на предстоящите такси.

Ключови параметри:

  • Search.InvoiceStatus - Задайте „Uninvoiced“ за предстоящи такси
  • FromDate и ToDate - Задайте текущия отчетен период
  • Филтър - Включете „TransactionDate, TransactionGrossAmount, AccountNumber, VehicleRegistration“

Пример за употреба 7: Анализ на използването на мрежата за пътни такси

Сценарий: Трябва да анализирате кои мрежи за пътни такси и оператори вашият автопарк използва най-често, за да договорите по-изгодни тарифи или да оптимизирате маршрутите.

Препоръчително API: /toll-data/v1/transactions/search

Защо този API: API-то предоставя подробна информация за мрежите с пътни такси, включително описание на мрежата, оператор на пътните такси, код на събирача на таксите и код на мрежата, което го прави идеален за анализ на използването на мрежите.

Ключови параметри:

  • FromDate и ToDate - Задайте периода на анализ (например тримесечен)
  • Филтър - Включете "NetworkDescription, TollOperator, TollChargerCode, Network, TransactionGrossAmount"
  • Размер на страницата - Използвайте по-голям размер на страницата за изчерпателно извличане на данни

Примери за употреба

Пример 1: Търсене на транзакции за пътни такси по сметка и период

Заявка:

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
}

Отговор:

{
  "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",
      "Страна на покупка": "Италия",
 "Код на страната на покупка": "IT",
 "Номер на картата": "707737*******334272",
 "Идентификационен номер на картата": 123456789,
      "CardGroupName": "Shell Fleet Solutions Consorzio",
 "VehicleRegistration": "KN 00000",
      "CostCenter": "100",
 "SystemEntryDate": "20260123",
 "SystemEntryTime": "13:14:25",
 "TransactionDate": "20260120",
      "TransactionTime": "10:30:00",
 "PostingDate": "20260123",
 "PostingTime": "00:00:00",
      "PayerNumber": "NL20016398",
 "AccountNumber": "NL20027701",
 "AccountName": "Име на тестова сметка",
 "StartDate": "20260120",
      "StartTime": "06:47:41",
 "EndDate": "20260120",
 "EndTime": "07:30:15",
 "TollGateEntry": "ROMA NORD",
      "TollGateExit": "BRENNERO",
 "DistanceDriven": "71.6",
 "RouteDescription": "ROMA NORD - BRENNERO",
 "TransactionType": "Пътен данък",
      "Код на продукта": "14",
 "Описание на продукта": "Пътен такс",
 "Нетна сума на транзакцията": "127,1",
 "Данък върху транзакцията": "0,0",
 "Брутна сума на транзакцията": "127,1",
      "Код на валутата на транзакцията": "EUR",
 "Статус на транзакцията": "Отчитане",
 "Номер на фактурата": "8600397548",
 "Дата на фактурата": "20260125",
 „Статус на фактурата“: „Фактурирано“,
 „Начин на плащане“: „Плащане след доставка“,
 „Сериен номер на ОВ“: „00049000000836932426“,
      "EmissionClass": "Euro 6",
 "ContractID": "fb75eb53-46eb-450b-862e-6045002c3fa8",
 "ShellTransactionID": "04176c5c-e7b2-49c8-bcb3-23d07ba583f2",
 "TollOperator": "Toll4Europe",
 "TollDomain": "Toll4Europe",
      "TariffRelevantInformation": "Клас на превозното средство: 2, Брой оси: 2, Категория на пътя: Магистрала",
 "AdditionalTransactionInfo": "Местоположение: 1",
 "TCInvoiceNumber": "12343343",
      "TCInvoiceDate": "20260123"
    }
  ]
}

Пример 2: Филтриране на транзакции по регистрационен номер на превозното средство (VRN)

Заявка:

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
}

Отговор:

{
  "RequestId": "9d2dee33-7803-485a-a2b1-2c7538e597ee",
  "Status": "SUCCESS",
  "Page": 1,
  "TotalRecords": 45,
  "TotalPages": 1,
  "PageSize": 50,
  "Data": [
    {
 "VehicleRegistration": "KN 00000",
      "Описание на маршрута": "ROMA NORD - BRENNERO",
 "Брутна сума на транзакцията": "127.1",
 "Дата на транзакцията": "20260120"
    },
    {
      "VehicleRegistration": "KN 00000",
 "RouteDescription": "MILANO EST - VERONA SUD",
 "TransactionGrossAmount": "85.4",
 "TransactionDate": "20260125"
    }
  ]
}

Пример 3: Търсене по група карти

Заявка:

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
}

Отговор:

{
  "RequestId": "5f1bded6-416d-4478-ab7f-33905d7b5d4b",
  "Status": "SUCCESS",
  "Page": 1,
  "TotalRecords": 87,
  "TotalPages": 3,
  "Размер на страницата": 30,
  "Данни": [
    {
 "Име на групата на картите": "Shell Fleet Solutions Consorzio",
 "Регистрационен номер на превозното средство": "KN 00000",
      "TransactionGrossAmount": "127.1",
 "TransactionDate": "20260120"
    },
    {
 "CardGroupName": "Shell Fleet Solutions Consorzio",
 "VehicleRegistration": "LM 11111",
 "TransactionGrossAmount": "95.8",
 "TransactionDate": "20260122"
    }
  ]
}

Пример 4: Няколко сметки с конкретни полета

Заявка:

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
}

Отговор:

{
  "RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
  "Status": "SUCCESS",
  "Page": 1,
  "TotalRecords": 245,
  "TotalPages": 3,
  "PageSize": 100,
  "Data": [
    {
 "AccountNumber": "NL20027701",
 "AccountName": "Име на тестова сметка",
 "TransactionDate": "20260120",
      "TransactionGrossAmount": "127.1",
 "VehicleRegistration": "KN 00000"
    },
    {
 "AccountNumber": "NL20027702",
      "AccountName": "Име на втора сметка",
 "TransactionDate": "20260121",
 "TransactionGrossAmount": "98.5",
 "VehicleRegistration": "PQ 22222"
    }
  ]
}

Обработка на грешки

Често срещани кодове за грешки

HTTP статус Код на грешката Описание Решение
200 Н/Д Статус: УСПЕХ Н/Д
400 E0001 Грешка при валидиране Проверете параметрите на заявката, уверете се, че задължителните полета са попълнени и са валидни
401 E0003 Няма разрешение Уверете се, че OAuth токенът е валиден и не е изтекъл
404 E0005 Не е намерено Уверете се, че URL адресът на крайната точка и ресурсът съществуват
500 E0002 Неизвестна грешка / Вътрешна грешка на сървъра Свържете се с отдела за поддръжка, като посочите RequestId
503 E0012 Услугата е недостъпна / Грешка в свързаността Опитайте отново след известно време; ако проблемът продължава, свържете се с поддръжката

Пример за отговор при грешка

Грешка при валидиране (E0001):

{
  "RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
  "Status": "FAILED",
  "Errors": [
    {
 "Code": "E0001",
      "Title": "Грешка при валидиране",
 "Detail": "Липсващи / невалидни стойности за: ColCoCode",
 "AdditionalInfo": null
    }
  ]
}

Грешка за липса на разрешение (E0003):

{
  "RequestId": "eb621f45-a543-4d9a-a934-2f223b263c42",
  "Status": "FAILED",
  "Errors": [
    {
 "Code": "E0003",
 "Title": "Липса на разрешение",
 "Detail": "Предоставените идентификационни данни са невалидни или потребителят няма достъп до операцията",
      "AdditionalInfo": null
    }
  ]
}

Най-добри практики

1. Използвайте удостоверяване по OAuth 2.0

ВАЖНО: Винаги използвайте удостоверяване по OAuth 2.0. Прилагайте подходящо управление на токените:

  • Съхранявайте токените за достъп в кеш и ги използвайте повторно до изтичане на валидността им
  • Обновете токените преди изтичането на валидността им (препоръчително 60 секунди преди това)
  • Съхранявайте клиентските идентификационни данни по сигурен начин (използвайте променливи на средата или мениджър на тайни)
  • Никога не записвайте и не разкривайте токени за достъп в кода на клиентската

2. Винаги включвайте RequestId

Винаги включвайте уникален RequestId (в UUID формат) в заглавката за проследяемост от край-до-край. Това е от решаващо значение за отстраняването на проблеми и поддръжката.

3. Внедрете обработка на грешки

Внедрете надеждна обработка на грешки:

  • Проверявайте полето „Status“ във всеки отговор
  • Записвайте RequestId за отстраняване на проблеми
  • Внедрете логика за повторен опит при временни грешки (503)
  • Обработка на грешки при валидиране (E0001) чрез проверка на входните параметри

Поддръжка и ресурси

Техническа поддръжка

Документация

Получаване на помощ

Когато се свързвате с отдела за поддръжка, посочете:

  1. Вашия client_id (никога не споделяйте client_secret или токените за достъп)
  2. RequestId от отговора на API-то
  3. Времева марка на заявката
  4. Среда (Производствена/Тестова)
  5. Получени кодове за грешки и съобщения

Последно актуализирано: 4 август 2026 г.
Версия на документа: 1.0
Версия на API: 1.0.0

За нас

Порталът за разработчици на Shell подпомага партньорите при интегрирането с API-та на Shell и превръщането на идеите в решения, готови за внедряване в производството.

Лого на Shell

Свържете се с

Влезте в профила си

Попитайте AI Assistant за API-та и API продуктите на Shell