Skip to main content

B2B Mobility Toll Transaction Data 1.0.0

รับการเปลี่ยนแปลงสถานะ การบำรุงรักษา และการอัปเดตเวอร์ชันเกี่ยวกับ API นี้

API ข้อมูลธุรกรรมค่าผ่านทาง Shell B2B Mobility - คู่มือเริ่มต้นอย่างรวดเร็ว

เวอร์ชัน API: 1.0.0 | การยืนยันตัวตน: OAuth 2.0 | สถานะ: Production

ภาพรวม

API ข้อมูลธุรกรรมค่าผ่านทาง Shell B2B Mobility เป็น API ที่ใช้ REST เป็นพื้นฐาน ซึ่งให้สิทธิ์เข้าถึงอย่างครบถ้วนต่อบันทึกธุรกรรมค่าผ่านทางและข้อมูลที่เกี่ยวข้องสำหรับลูกค้าบริการความคล่องตัวของ Shell API นี้ช่วยให้ผู้พัฒนาสามารถเรียกใช้ กรอง และวิเคราะห์ข้อมูลธุรกรรมค่าผ่านทางผ่านโปรแกรมได้ เพื่อการปรับยอดบัญชี การตรวจสอบใบแจ้งหนี้ การจัดการค่าใช้จ่าย และข้อกำหนดด้านการปฏิบัติตามกฎระเบียบ

คุณสมบัติหลัก

  • เรียกข้อมูลธุรกรรมค่าผ่านทางตามหมายเลขบัญชี
  • กรองธุรกรรมตามช่วงวันที่ (วันที่เริ่มต้นและวันที่สิ้นสุด)
  • ค้นหาตามสถานะใบแจ้งหนี้และ VRN (หมายเลขทะเบียนรถ)
  • ความสามารถในการจัดเรียงขั้นสูงตามหลายฟิลด์
  • รองรับการแบ่งหน้าสำหรับชุดข้อมูลขนาดใหญ่
  • การกรองฟิลด์ที่ยืดหยุ่นเพื่อเพิ่มประสิทธิภาพของข้อมูลที่ส่งกลับ
  • รายละเอียดค่าผ่านทางที่ครบถ้วน รวมถึงจุดเข้า/ออก
  • รองรับเครือข่ายและผู้ให้บริการเก็บค่าผ่านทางหลายแห่ง

การยืนยันตัวตน

OAuth 2.0 (วิธีการยืนยันตัวตนมาตรฐาน)

API ข้อมูลธุรกรรมค่าผ่านทาง Shell ใช้ กระบวนการ OAuth 2.0 Client Credentials เพื่อการยืนยันตัวตนที่ปลอดภัย.

กระบวนการ 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 โทเค็น
Production 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": "Italy",
      "PurchasedInCountryCode": "IT",
 "CardNumber": "707737*******334272",
 "CardId": 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": "Test Account Name",
 "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": "ค่าทาง",
 "ProductCode": "14",
 "ProductDescription": "ค่าทาง",
 "TransactionNetAmount": "127.1",
      "TransactionTax": "0.0",
 "TransactionGrossAmount": "127.1",
 "TransactionCurrencyCode": "EUR",
 "TransactionStatus": "Reporting",
 "InvoiceNumber": "8600397548",
 "InvoiceDate": "20260125",
 "InvoiceStatus": "Invoiced",
 "PaymentMethod": "Post Pay",
 "OBUSerialNumber": "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 Endpoints Reference

Toll Transactions

จุดปลาย วิธีการ คำอธิบาย
/toll-data/v1/transactions/search POST เรียกข้อมูลธุรกรรมค่าผ่านทางด้วยการกรองที่ยืดหยุ่น การกรองและแบ่งหน้า

กรณีการใช้งานทั่วไป:

  • เรียกข้อมูลธุรกรรมค่าผ่านทางตามช่วงวันที่
  • กรองตามสถานะใบแจ้งหนี้ (ออกใบแจ้งหนี้แล้ว, ยังไม่ออกใบแจ้งหนี้, ทั้งหมด)
  • ค้นหาตามหมายเลขทะเบียนรถ (VRN)
  • กรองตามกลุ่มบัตร
  • จัดเรียงธุรกรรมตามเกณฑ์หลายประการ
  • เลือกฟิลด์เฉพาะเพื่อปรับขนาดการตอบกลับให้เหมาะสม

กรณีการใช้งานทั่วไป

ส่วนนี้แสดงการเชื่อมโยงระหว่างสถานการณ์ธุรกิจทั่วไปกับรูปแบบการใช้งาน API เพื่อช่วยคุณระบุได้อย่างรวดเร็วว่าควรใช้ API อย่างไรให้เหมาะสมกับความต้องการเฉพาะของคุณ

กรณีการใช้งาน 1: การปรับยอดธุรกรรมค่าผ่านทางรายวัน

สถานการณ์: คุณจำเป็นต้องปรับยอดธุรกรรมค่าผ่านทางทั้งหมดจากกองยานพาหนะของคุณทุกวันเพื่อวัตถุประสงค์ทางบัญชี

API ที่แนะนำ: /toll-data/v1/transactions/search

ทำไมต้องใช้ API นี้: จุดปลายทางนี้ให้รายละเอียดธุรกรรมค่าผ่านทางอย่างครบถ้วน พร้อมด้วยฟังก์ชันกรองวันที่ที่ยืดหยุ่น รองรับทั้งธุรกรรมที่ออกใบแจ้งหนี้และที่ยังไม่ออกใบแจ้งหนี้ รวมถึงการแบ่งหน้าสำหรับชุดข้อมูลขนาดใหญ่ เหมาะอย่างยิ่งสำหรับกระบวนการทำงานการปรับยอดรายวัน

พารามิเตอร์หลัก:

  • FromDate และ ToDate - ตั้งเป็นวันที่เมื่อวานเพื่อดำเนินการปรับยอดรายวัน
  • Search.InvoiceStatus - ใช้ "All" เพื่อรวมธุรกรรมทั้งที่ออกใบแจ้งหนี้แล้วและที่ยังไม่ออกใบแจ้งหนี้
  • PageSize - ตั้งค่าเป็น 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 - ระบุชื่อกลุ่มบัตร หรือใช้ "All" เพื่อเลือกทุกกลุ่ม
  • FromDate และ ToDate - ตั้งเป็นช่วงเวลาการรายงาน
  • Filter - รวม "CardGroupName, CostCenter, TransactionGrossAmount, TransactionNetAmount, TransactionTax"
  • SortOption - ใช้ 3 (Transaction Amount ascending) สำหรับการวิเคราะห์ค่าใช้จ่าย

กรณีการใช้งาน 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 - ตั้งเป็นช่วงการเรียกเก็บเงินปัจจุบัน
  • Filter - รวม "TransactionDate, TransactionGrossAmount, AccountNumber, VehicleRegistration"

กรณีการใช้งาน 7: การวิเคราะห์การใช้งานเครือข่ายค่าผ่านทาง

สถานการณ์: คุณจำเป็นต้องวิเคราะห์ว่าเครือข่ายค่าผ่านทางและผู้ดำเนินการใดที่กองยานของคุณใช้งานบ่อยที่สุด เพื่อเจรจาอัตราค่าผ่านทางที่ดีขึ้นหรือปรับเส้นทางให้เหมาะสม

API ที่แนะนำ: /toll-data/v1/transactions/search

เหตุผลที่เลือก API นี้: API นี้ให้ข้อมูลเครือข่ายทางด่วนอย่างละเอียด รวมถึงคำอธิบายเครือข่าย ผู้ให้บริการทางด่วน รหัสเครื่องเก็บค่าผ่านทาง และรหัสเครือข่าย ซึ่งเหมาะอย่างยิ่งสำหรับการวิเคราะห์การใช้งานเครือข่าย

พารามิเตอร์หลัก:

  • FromDate และ ToDate - ตั้งเป็นช่วงเวลาวิเคราะห์ (เช่น ทุกไตรมาส)
  • Filter - รวม "NetworkDescription, TollOperator, TollChargerCode, Network, TransactionGrossAmount"
  • PageSize - ใช้ขนาดหน้าใหญ่ขึ้นเพื่อดึงข้อมูลอย่างครบถ้วน

ตัวอย่างการใช้งาน

ตัวอย่าง 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
}

Response:

{
  "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",
 "SystemEntryTime": "13:14:25",
      "TransactionDate": "20260120",
 "TransactionTime": "10:30:00",
      "PostingDate": "20260123",
 "PostingTime": "00:00:00",
 "PayerNumber": "NL20016398",
 "AccountNumber": "NL20027701",
      "AccountName": "Test Account Name",
 "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": "ค่าทาง",
 "ProductCode": "14",
 "ProductDescription": "ค่าทาง",
 "TransactionNetAmount": "127.1",
      "TransactionTax": "0.0",
 "TransactionGrossAmount": "127.1",
 "TransactionCurrencyCode": "EUR",
 "TransactionStatus": "Reporting",
      "InvoiceNumber": "8600397548",
 "InvoiceDate": "20260125",
 "InvoiceStatus": "ออกใบแจ้งหนี้แล้ว",
 "PaymentMethod": "ชำระภายหลัง",
      "OBUSerialNumber": "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
}

Response:

{
  "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"
    }
  ]
}

ตัวอย่าง 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
}

Response:

{
  "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"
    }
  ]
}

ตัวอย่าง 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
}

Response:

{
  "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",
      "VehicleRegistration": "KN 00000"
    },
    {
 "AccountNumber": "NL20027702",
 "AccountName": "Second Account Name",
      "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": "Unauthorized",
 "Detail": "ข้อมูลรับรองที่ให้มาไม่ถูกต้อง หรือผู้ใช้ไม่มีสิทธิ์เข้าถึงการดำเนินการ",
      "AdditionalInfo": null
    }
  ]
}

แนวทางปฏิบัติที่ดีที่สุด

1. ใช้การยืนยันตัวตน OAuth 2.0

สำคัญ: ให้ใช้ OAuth 2.0 สำหรับการตรวจสอบสิทธิ์เสมอ ดำเนินการจัดการโทเค็นอย่างถูกต้อง:

  • เก็บโทเค็นการเข้าถึงไว้ในแคชและใช้ซ้ำจนกว่าจะหมดอายุ
  • รีเฟรชโทเค็นก่อนที่มันจะหมดอายุ (แนะนำให้ทำก่อน 60 วินาที)
  • เก็บรักษาข้อมูลรับรองของไคลเอนต์อย่างปลอดภัย (ใช้ตัวแปรสภาพแวดล้อมหรือผู้จัดการข้อมูลลับ)
  • อย่าบันทึกหรือเปิดเผยโทเค็นการเข้าถึงในโค้ดฝั่งไคลเอนต์

2. ต้องรวม RequestId เสมอ

ต้องรวม RequestId ที่ไม่ซ้ำกัน (รูปแบบ UUID) ในส่วนหัวเพื่อความสามารถในการติดตามแบบ end-to-end สิ่งนี้สำคัญอย่างยิ่งสำหรับการแก้ไขปัญหาและการสนับสนุน

3. ดำเนินการจัดการข้อผิดพลาด

ดำเนินการจัดการข้อผิดพลาดอย่างมั่นคง:

  • ตรวจสอบฟิลด์ Status ในทุกการตอบกลับ
  • บันทึก RequestId เพื่อแก้ไขปัญหา
  • นำตรรกะการลองใหม่มาใช้สำหรับข้อผิดพลาดชั่วคราว (503)
  • จัดการข้อผิดพลาดในการตรวจสอบความถูกต้อง (E0001) โดยตรวจสอบพารามิเตอร์ที่ป้อน

การสนับสนุนและทรัพยากร

การสนับสนุนทางเทคนิค

เอกสาร

ขอความช่วยเหลือ

เมื่อติดต่อฝ่ายสนับสนุน โปรดให้:

  1. client_id ของคุณ (อย่าเปิดเผย client_secret หรือ access tokens ของคุณเด็ดขาด)
  2. RequestId จากคำตอบของ API
  3. เวลาที่ส่งคำขอ
  4. สภาพแวดล้อม (Production/Test)
  5. รหัสข้อผิดพลาดและข้อความที่ได้รับ

อัปเดตครั้งสุดท้าย: 4 สิงหาคม 2026
เวอร์ชันเอกสาร: 1.0
เวอร์ชัน API: 1.0.0

เกี่ยวกับเรา

Shell Developer Portal ช่วยสนับสนุนพันธมิตรในการเริ่มต้นใช้งาน API ของ Shell และเปลี่ยนไอเดียให้เป็นโซลูชันที่พร้อมใช้งานจริง

โลโก้ Shell

ติดต่อ

เข้าสู่ระบบบัญชีของคุณ

ถามผู้ช่วย AI เกี่ยวกับ Shell APIs และ API Products