Error handling

Standard http response codes (as listed in Error responses below) will be used to indicate the result of processing the fuel transaction. The fuel third party is expected to retry the request when an error code is returned. For example 503 may be returned during a brief maintenance window.

 

Error responses

An http response code of 300 or greater indicates there was an error processing the fuel transaction.  

A full list of the response codes can be found at http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html and the table below gives a list of the codes relevant for a PUT.

 Code   Description 
 200   (OK) - if an existing resource has been updated 
 201   (created) - if a new resource is created 
 204   (success) - No content 
 301   (Moved Permanently) - the resource URI has been updated 
 303   (See Other) - e.g. load balancing 
 400   (bad request) - indicates a bad request or validation errors 
 401   (unauthorized) – authentication has failed or has not been provided 
 404   (not found) - the resource does not exist 
 406   (not acceptable) - the server does not support the required representation 
 409   (conflict) - general conflict 
 412   (Precondition Failed) e.g. conflict by performing conditional update 
 415   (unsupported media type) - received representation is not supported 
 500   (internal server error) - generic error response 
 503   (Service Unavailable) - The server is currently unable to handle the request 

 

Retry timeout

The fuel third party should retry a request for a minimum of 2 hours before timing out the request.  A retry delay, of at least 2 minutes, should be used to not unnecessarily load either system.

When persistent errors are detected by the fuel third party EROAD support should be notified to diagnose and correct the issue.

 

Notifications

Notifications to be sent by email to support@eroad.co.nz. They should follow the format below:

Subject:

<ThirdParty> Fuel transaction API persistent ERROR

Body:

<Descriptive text of the issue>

 

Issue start date/time: <date/time>

Outstanding request number: <number of requests pending>

Http Error codes: <List of common http error codes if any>