Appearance
Troubleshooting
Overview
This guide provides step-by-step diagnostic procedures for identifying and resolving integration issues. Follow the standard diagnostic flow first, then refer to the specific playbooks for common failure scenarios.
Standard Diagnostic Flow
When any workflow fails — linking, Subsidy Card validation, trip, or payment — use this flow before escalating to CabFare support.
Step 1 — Identify the failing step
Determine exactly which step in the workflow is failing:
- Driver login
- Device link request
- Trip start
- Subsidy Card validation
- Trip end and subsidy processing
- Balance payment
- Job done and shift end
Step 2 — Check the last request and response
Log and inspect the full HTTP request and response for the failing call:
- URL and method
- Headers — are
X-API-KEYandX-API-SECRETpresent and correct? - Request body — is it valid JSON with all required fields?
- HTTP status code
- Response body — inspect the
detailarray for field-level errors
Never log your full X-API-SECRET value. Redact secrets in all logs and support tickets.
Step 3 — Cross-check identifiers
For the failing request verify:
driverIdmatches the value used during login on both devicesvehiclePlateis present and consistent across both devicestaxiMeterIdorterminalIdis stable and consistent for the hardwaretripIdis the correct value for the current hiretransactionIdis unique and correct for the payment attempt
Inconsistent identifiers are the most common cause of 404 Not Found and linking failures.
Step 4 — Reproduce with a minimal payload
Use curl or Postman with known-good test data from the sandbox to reproduce the issue. Compare the failing request against the working test to identify the discrepancy.
bash
curl -i -X POST https://dcp-sandbox.nbggroup.com.au/api/v0.5.0/meter/driver/login \
-H "Content-Type: application/json" \
-H "X-API-KEY: your-sandbox-key" \
-H "X-API-SECRET: your-sandbox-secret" \
-d '{
"taxiMeterId": "TM100",
"driverId": "999998",
"vehiclePlate": "M1000"
}'Step 5 — Check connectivity
If all requests are failing verify basic connectivity to the API:
bash
curl -i https://dcp-sandbox.nbggroup.com.au/api/v0.5.0/pingExpect 200 OK with body {"response": "Pong"}. If this fails check your network, firewall, and TLS configuration.
What to Capture in Your Logs
For reliable self-diagnosis and efficient support escalation, log the following for every API call:
- Timestamp in UTC
- Endpoint and HTTP method
- HTTP status code returned
taxiMeterIdorterminalIddriverIdvehiclePlatetripIdwhere applicabletransactionIdwhere applicable- Any
status,error, anddetailfields from error responses - For trip end and payment calls, the monetary values submitted and the values returned
Never log full card numbers or PCI-sensitive data. For Subsidy Card numbers log only the last 4 digits where necessary.
Troubleshooting Playbooks
Playbook 1 — Driver Cannot Start a Subsidy Scheme Trip
- Confirm driver is logged in on the Taxi Meter —
POST /meter/driver/loginreturned200 OK - Confirm driver is logged in on the Payment Terminal —
POST /terminal/driver/loginreturned200 OK - Check
mptpDriverData.mptpStatusin both login responses — ifMPTP_DRIVER_INVALIDon either device, Subsidy Scheme mode must be disabled - Confirm the Payment Terminal sent
POST /terminal/link/requestand received a success response viaPOST /link/response - Poll
POST /meter/driver/polluntilloginStatus: trueandlinkStatus: true - If link never becomes true, verify your
POST /link/responseevent handler is implemented and reachable - Once linked, confirm the Taxi Meter calls
POST /meter/trip/startand handles both204(Subsidy Scheme valid) and202(Subsidy Scheme invalid) responses correctly
Playbook 2 — Manual Subsidy Card Entry Keeps Failing
- Verify the driver UI only accepts 9 digits and instructs the driver to omit the card number prefix
- Call
POST /meter/mptp/validatewith the 9-digit number in themptpNumbersarray - For each item in the response array check
mptpStatus— if invalid or expired display a clear error to the driver - If the API returns
403 Forbidden, the driver or vehicle is not authorised for Subsidy Scheme trips — contact CabFare support
Playbook 3 — Payment Not Settling Correctly
- Confirm
POST /terminal/payment/completeis being called for every payment attempt — approved and declined - Verify all required fields are present:
terminalId,driverId,transactionId,paymentStatus - Confirm
paymentStatuscorrectly reflects the outcome — an incorrect status may cause the backend to treat the transaction as unpaid - Match
transactionIdto the correspondingtripIdin your internal logs to trace the full payment flow - If the payment was approved on the terminal but not reflected in CabFare Connect, the driver can manually mark the payment as successful on the Taxi Meter and continue
Contacting CabFare Support
When escalating to CabFare support include the following information to ensure fast resolution:
Environment details:
- Sandbox or production
- API version (e.g.
v0.5.0)
Affected components:
- Taxi Meter provider name and software version
- Payment Terminal provider name and version
Problem description:
- What the driver or operator attempted and what happened
- Whether the issue is reproducible or intermittent
- Approximate time and date of occurrence in UTC
Technical artefacts:
- HTTP logs of the failing requests and responses — status code, response body, and relevant headers
taxiMeterIdorterminalId,driverId,vehiclePlate,tripId,transactionId- Any UI screenshots or error messages shown to the driver
Contact: support@cabfare.com

