Skip to main content

B2B Mobility Card Management 3.1.5

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

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

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

Общ преглед

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

Забележка: Настоящото ръководство обхваща само крайни точки, автентифицирани чрез OAuth 2.0 (базов път: /card-management/v1). Старите крайни точки с Basic Auth (/fleetmanagement/v1/card) не са включени, тъй като постепенно се извеждат от употреба.

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

  • Търсене и филтриране на карти за гориво по гъвкави критерии
  • Поръчайте нови карти и проследявайте статуса на поръчката
  • Блокирайте, деблокирайте и анулирайте карти
  • Актуализиране на адресите за доставка на картите
  • Управление на настройките за автоматично подновяване на картите
  • Преместване на карти между групи карти и сметки
  • Искане на напомняния за ПИН кода

Важно съобщение – OAuth 2.0

ВАЖНО: OAuth 2.0 вече е стандартният метод за удостоверяване

  • Нови интеграции: Използвайте OAuth 2.0 от самото начало
  • Съществуващи интеграции: Планирайте миграцията си към OAuth 2.0
  • Стари методи: Basic Auth и API Key постепенно се премахват

Свържете се с техническата поддръжка на Shell, за да получите вашите идентификационни данни за OAuth 2.0 (client_id и client_secret).

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

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

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

ПРЕДУПРЕЖДЕНИЕ: Всички клиенти трябва да планират преминаване към удостоверяване чрез OAuth 2.0. Това е препоръчителният и бъдещоориентиран метод за удостоверяване за API-то за управление на карти на Shell. Старите методи за удостоверяване постепенно се премахват.

Процес на 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

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

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

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

Стратегия за внедряване на OAuth 2.0

Защо да мигрирате към OAuth 2.0?

Предимства за сигурността:

  • Протокол за удостоверяване, отговарящ на индустриалните стандарти
  • Токените за достъп с ограничено време на валидност намаляват рисковете за сигурността
  • При всяко заявка не се предават идентификационни данни
  • По-добра поддръжка за ротация и отмяна на токени

Оперативни предимства:

  • Подобрена мащабируемост и производителност
  • По-добри възможности за мониторинг и одит
  • Опростено управление на удостоверенията
  • Интеграция, готова за бъдещето

Път за миграция

Ако в момента използвате остарели методи за удостоверяване, следвайте този път за миграция:

  1. Поискайте данни за достъп по OAuth 2.0 от Техническата поддръжка на Shell
  2. Внедрете управление на OAuth токени във вашето приложение
  3. Тествайте изчерпателно в тестовата/Sandbox среда
  4. Използвайте паралелна автентификация (OAuth + стари методи) по време на прехода
  5. Наблюдавайте и валидирайте интеграцията с OAuth
  6. Преминаване към изцяло OAuth след потвърждаване
  7. Преустановете старата автентификация след успешна миграция

Среди

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

Среда Базов URL Предназначение
Производствена https://api.shell.com Производствена среда на живо
Тестова (Sandbox) https://api-test.shell.com/test Среда за тестване и разработка

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

Бързо начало

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": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 899
}

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

Пример: Търсене на активни карти

Пример с cURL:

curl -X POST https://api-test.shell.com/test/card-management/v1/search \
  -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." \
  -H "Content-Type: application/json" \
  -d '{
    "Filters": {
 "PayerNumber": "CZ00000927",
 "AccountNumber": "CZ00000927",
 "ColCoCode": 32,
 "CardStatus": [
 "Active"
 ]
       
    },
    "Page": 1,
    "PageSize": 1
}'

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

{
    "Page": 1,
    "TotalRecords": 7994,
    "Общ брой страници": 7994,
    "Размер на страницата": 1,
    "Данни": [
 {
 "Идентификатор на сметката": 1227,
            "AccountName": "Dominica1_C_1",
 "AccountNumber": "CZ00000927",
 "AccountShortName": "Dominica1_1",
            "Идентификатор на пакета": null,
 "Графици на блока на картата": null,
 "Идентификатор на групата на картата": null,
 "Име на групата на картата": null,
 "Идентификатор на картата": 491623,
            "CardTypeCode": "7027329",
 "CardTypeId": 11120,
 "CardTypeName": "CZ SFA NAT SIN - CHIP",
 "ColCoCountryCode": "CZ",
            "CreationDate": "20220810 23:53:25",
 "DriverName": "SHELL973169581",
            "EffectiveDate": "20220810",
 "ExpiryDate": "20260831",
 "FleetIdInput": true,
 "IsCRT": false,
 "IsFleet": true,
            "IsInternational": false,
 "IsNational": true,
 "IsPartnerSitesIncluded": false,
 "IsShellSitesOnly": true,
 "IssueDate": "20220812",
            "IsSuperseded": false,
 "IsVirtualCard": false,
 "LastModifiedDate": "20230614 00:05:16",
            "LastUsedDate": null,
 "LocalCurrencyCode": "CZK",
 "LocalCurrencySymbol": "Kč",
 "OdometerInput": true,
            "PAN": "7027329200001461736",
 "MaskedPAN": "7027329******461736",
 "PANID": 17268839,
            "PurchaseCategoryCode": "2",
 "PurchaseCategoryId": 102,
 "PurchaseCategoryName": "2 – Всички горивни продукти, артикули, свързани с автомобили, и TMF",
            "Причина": "Планирано за деблокиране",
 "Настройка за преиздаване": "True",
 "Описание на състоянието": "Активно",
 "Идентификатор на състоянието": 1,
            "TokenTypeID": 503742,
 "TokenTypeName": "CZ SFA NAT SIN – CHIP",
 "VRN": "VRN347886994",
            "ClientReferenceId": null,
 "IsEMVContact": true,
 "IsEMVContactless": false,
 "IsRFID": false,
 "RFIDUID": null,
            "EMAID": null,
 "EVPrintedNumber": null,
 "CardMediaCode": "100999",
 "MediumTypeID": 1,
 "MediumType": "Fuel Card"
 }
    ],
    "RequestId": "5a474d3e-70f4-4f7d-9416-5d5475b33e4f",
    "Status": "SUCCESS"
}

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

Търсене и извличане на карти

Крайна точка Метод Описание
/card-management/v1/search POST Търсене на карти с гъвкави филтри (OAuth 2.0)
/card-management/v1/details POST Извличане на подробности за отделна карта за гориво (OAuth 2.0)

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

  • Търсене по статус на картата (АКТИВНА, БЛОКИРАНА, ИЗТЕКЛА и др.)
  • Филтриране по име на шофьора или регистрационен номер на превозното средство
  • Търсене по PAN (последните 4 цифри)
  • Намерете карти, изтичащи след X дни

Обобщение за картата

Крайна точка Метод Описание
/card-management/v1/summary POST Получаване на обобщена информация за картите за гориво (OAuth 2.0)

Връща:

  • Общ брой карти по статус
  • Обобщени статистически данни по тип карта
  • Разбивка по активни и неактивни

Поръчка на карти

Крайна точка Метод Описание
/card-management/v1/ordercard POST Поръчка на една или повече карти за гориво (OAuth 2.0)
/card-management/v1/ordercardenquiry POST Проверка на статуса на поръчката на карти (OAuth 2.0)

Необходима информация за поръчка на карти:

  • ColCoCode (код на събиращата компания)
  • PayerNumber или PayerId
  • Номер на сметката
  • Тип и конфигурация на картата
  • Данни за адреса за доставка

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

Крайна точка Метод Описание
/card-management/v1/updatestatus POST Блокиране, деблокиране или анулиране на карти (OAuth 2.0)
/card-management/v1/schedulecardblock POST Планиране на заявки за блокиране/деблокиране на карти (OAuth 2.0)

Действия със статуса:

  • БЛОКИРАЙ - Временно блокиране на карта
  • ДЕБЛОКИРАНЕ - Реактивиране на блокирана карта
  • ПОВРЕДЕНА - Докладване на карта като повредена и заявка за замяна
  • TEMP_BLOCK_CUSTOMER - Временно блокиране по инициатива на клиента
  • TEMP_BLOCK_SHELL - Временно блокиране, инициирано от системата

ВНИМАНИЕ: Анулирането на картата е окончателно и не може да бъде отменено.

Допълнителни крайни точки

Категория Крайна точка Метод Описание
Анулиране /card-management/v1/cancel POST Анулиране на една или повече карти
Преместване на карти /card-management/v1/move POST Преместване на карти в друга група карти или сметка
Управление на ПИН кода /card-management/v1/pinreminder POST Искане на напомняне за ПИН кода на карта
Адрес за доставка /card-management/v1/deliveryaddressupdate POST Актуализиране на адреса за доставка на карта
Автоматично подновяване /card-management/v1/autorenew POST Актуализиране на индикатора за преиздаване

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

Пример 1: Търсене на карти, чийто срок на валидност изтича скоро

POST /card-management/v1/search

{
    "Filters": {
 "PayerNumber": "CZ00000927",
 "AccountNumber": "CZ00000927",
        "ColCoCode": 32,
 "CardStatus": [
 "Active"
 ],
 "ExpiringInDays" : 70
 
 },
    "Page": 1,
    "PageSize": 1
}

Пример 2: Временно блокиране на карта

POST /card-management/v1/updatestatus

{

  "Cards": [
    {
      "CardId": 125,
 "ColCoCode": 86,
 "PayerNumber": "PH50000843",
    },
    "ReasonId": 1236,
    "ReasonText": "Деблокиране",
    "TargetStatus": "Деблокиране"

  ]
}

Пример 3: Анулиране на карти

POST /card-management/v1/cancel

{
  
  "Cards": [
    {
 "CardId": 125,
      "CardExpiryDate": "20231231",
 "ColCoCode": 86,
 "PayerNumber": "PH50000843",
    }
  ],
  "ReasonText": "Изгубена",
  "RequestId": "1"
}

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

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

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

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

1. Преминете към удостоверяване чрез OAuth 2.0

ВАЖНО: Всички клиенти трябва да преминат към удостоверяване чрез OAuth 2.0. Въведете подходящо управление на токените:

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

2. Използвайте идентификатори на заявки

Винаги включвайте уникален RequestId (в GUID формат) за проследяемост от начало до край

3. Внедрете пагинация

При големи масиви от данни използвайте пагинация, за да избегнете изтичане на времето за изчакване

4. Тествайте в тестова среда

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

SDK и примери за код

Shell предоставя официални SDK и изчерпателни примери за код, за да ускори вашата интеграция с API-то за управление на карти.

Налични езици за SDK

  • Python – SDK с пълен набор от функции и поддръжка на OAuth 2.0
  • TypeScript – SDK с типова безопасност и пълни дефиниции на типовете
  • Java - SDK за корпоративно ниво
  • C#/.NET - Пълна интеграция с .NET
  • PHP - Лесна за използване PHP библиотека
  • Ruby - Ruby gem за безпроблемна интеграция

Вижте официалните SDK и документация

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

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

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

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

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

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

Последно актуализирано: 1 юли 2026 г.
Версия на документа: 1.0
Версия на API: 3.1.5

За нас

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

Лого на Shell

Свържете се с

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

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