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 ของคุณ
- ติดต่อ ทีมสนับสนุนทางเทคนิคของ Shell
- ขอข้อมูลรับรอง OAuth 2.0 (client_id และ client_secret)
- ตรวจสอบ เงื่อนไขการให้บริการ
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) โดยตรวจสอบพารามิเตอร์ที่ป้อน
การสนับสนุนและทรัพยากร
การสนับสนุนทางเทคนิค
- การสนับสนุน: การสนับสนุนทางเทคนิคของ Shell
- อีเมล: api@shell.com
เอกสาร
ขอความช่วยเหลือ
เมื่อติดต่อฝ่ายสนับสนุน โปรดให้:
- client_id ของคุณ (อย่าเปิดเผย client_secret หรือ access tokens ของคุณเด็ดขาด)
- RequestId จากคำตอบของ API
- เวลาที่ส่งคำขอ
- สภาพแวดล้อม (Production/Test)
- รหัสข้อผิดพลาดและข้อความที่ได้รับ
อัปเดตครั้งสุดท้าย: 4 สิงหาคม 2026
เวอร์ชันเอกสาร: 1.0
เวอร์ชัน API: 1.0.0
