Available resources
- POST - Connect parking
- POST - Manual stop
- Callback POST - Successful end of parking
- Callback POST - Cancel parking
- Error handling
Access requirements
- A valid authentication token is required to access the API. How to authenticate your application
- Access to the Payment API is offered as a paid service. Please contact your Autopay representative for details
- Please note that Autopay provides separate API credentials to manage payments for different operators.
Note: Integrators must provide Autopay with two callback URLs, one for Callback POST - Successful end of parking and the other for Callback POST - Cancel parking. We support URLs protected with the following authentication methods:
- basic authentication,
- token authentication (uses the Authorization header),
- API key (uses the X-API-Key header).
POST - Connect parking
This method allows you to register an external payment and connect it to the parking.
Endpoint
POST https://api.autopay.io/payment/v1/connect_parking
Request parameters
- The request body must be in JSON format and HTTP headers must include
Content-Type: application/json. - The headers must include a valid access token.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
| parking_area_code | string | yes | Code of the parking facility in payment provider's system. This code has to be configured under the zone configuration (Provider codes) in Autopay. |
| reference | string | yes | Your unique identifier for the parking. Commonly a primary key is used. |
| vehicle_reg | string | yes | Vehicle registration number (license plate) |
| plate_issuer | string | yes | County code of the plate issuer (ISO 3166-1 alpha-3) |
| plate_subdivision | string | no | Region (subdivision) of the vehicle |
Example request
{
"parking_area_code": "area1",
"reference": "ref1",
"vehicle_reg": "123ABC",
"plate_issuer": "NOR",
"plate_subdivision": null
}Success response
HTTP Code: 200 OK
| Parameter | Type | Description |
|---|---|---|
| parking_id | string | The unique ID of the parking in Autopay |
| reference | string | Your unique identifier for the parking. Commonly a primary key is used. |
| start_time | date-time | Start time of the parking (ISO8601) |
Example request
POST https://api.autopay.io/payment/v1/connect_parking
Example success responce
{
"parking_id": "1234567890",
"reference": "ref1",
"start_time": "2019-02-26T11:52:16+0000"
}POST - Manual stop
This method allows the payment provider to request a manual stop for parking in Autopay if, for example, an exit event is missed in the Autopay system. After a manual stop is requested, a Successful end of parking message with the details of the parking will be sent to the corresponding callback URL. However, a follow-up session will be created in the Autopay system. If a corresponding exit event happens, the follow-up session is finished and charged to the customer using the regular means in Autopay.
Note: The manual stop method should only be used if there is a missed exit event or some other issue with the parking. It should not be used to allow customers to finish their parking using the external payment application.Endpoint
POST https://api.autopay.io/payment/v1/manual_stop
Request parameters
- The request body must be in JSON format and HTTP headers must include
Content-Type: application/json. - The headers must include a valid access token.
- The headers must include a valid access token.
- Please see the table below for post parameters.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
| parking_id | string | yes | The unique ID of the parking in Autopay |
| reference | string | yes | Your unique identifier for the parking. Commonly a primary key is used. |
| end_time | datetime (ISO 8601) | yes | End time of the parking provided by the payment provider |
Example request
{
"parking_id": "1234567890",
"reference": "ref1",
"end_time": "2019-02-28T11:52:16+0000"
}Success response
HTTP Code: 200 OK
Callback POST - Successful end of parking
When parking ends successfully, Autopay will send a POST request with the parking details to the provided success callback URL. Parking is considered successful if Autopay finishes the parking successfully or the payment provider makes a manual stop request.
Parking is successfully ended
| Parameter | Type | Description |
|---|---|---|
| parking_id | string | The unique ID of the parking in Autopay |
| reference | string | Your unique identifier for the parking. Commonly a primary key is used. |
| end_time | date-time | End time of the parking provided by the payment provider (ISO8601). |
| cost: | ||
| currency | string | Currency of payment |
| vat_percent | decimal | VAT percent of payment |
| net_amount | decimal | Amount of payment without VAT |
| vat_amount | decimal | Amount of VAT |
| gross_amount | decimal | Amount of payment with VAT |
Example request body
{
"parking_id": "1234567890",
"reference": "ref1",
"end_time": "2019-02-28T11:52:16+0000",
"cost": {
"currency": "NOK",
"vat_percent": 20.0,
"net_amount": 100.0,
"vat_amount": 20.0,
"gross_amount": 120.0
}
}Callback POST - Cancel parking
If the parking goes into an error state in Autopay and shouldn't be charged to the customer, Autopay sends a cancellation message to the provided cancel callback URL.
Parking is canceled
| Parameter | Type | Description |
|---|---|---|
| parking_id | string | The unique ID of the parking in Autopay |
| reference | string | Your unique identifier for the parking. Commonly a primary key is used. |
Example request body
{
"parking_id": "1234567890",
"reference": "ref1"
}Error messages
| Parameter | Type | Description |
|---|---|---|
| error_id | string | Specific code of error. See below for possible values |
| message | string | Description of error |
| description | string | Optional value. Additional description of error. |
Example error response
{
"error_id": "authentication_error",
"message": "No access token present in header!"
}Possible error id-s
| Error id | Explanation |
|---|---|
| forbidden | Unauthorized |
| internal_server_error | Internal server error |
| missing_property | A required property in request is missing |
| message_not_readable | A problem with the request body |
| method_not_supported | Used REST method not supported |
| argument_type_mismatch | A request argument is of incorrect type |
| server_communication_error | Error communication with server |
| operator_not_found_error | Operator not found |
| missing_operator_token_error | Missing operator in access token |