The PMC API is designed to facilitate the payment of short-term parking fees via mobile applications from third parties. This API enables payment transactions through a central server connected to the PMC, supporting multiple parking facilities. However, it’s essential that each parking facility is compatible with this payment system. Parking spots are identified using the query parameter gmtpId, which contains the installation number.
The usage of this API is outlined in four main steps:
Identification of the parking card based on available parking card identification.
Calculation of the payment amount according to the parking duration and the time until which the payment is required.
Creation of a receipt for the amount paid.
Marking the parking card as paid to finalize the transaction.
For effective use, it’s crucial to follow these steps in sequence to ensure the transaction is correctly processed. This structured approach guarantees a seamless experience for both parking providers and users, making it a versatile solution for integrating parking payment systems into third-party mobile applications.
In this section you can find all the variants of Get card info request.
Authorization: KERNEL_CARDS
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards?cardNumber={{cardNumber}}&gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards?cardNumber={{cardNumber}}&gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 400 Bad Request |
|---|
| Status | 403 Forbidden |
|---|
| Status | 500 Internal Server Error |
|---|
Authorization: KERNEL_CARDS
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards?search={{cardNumberShort}}&gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards?search={{cardNumberShort}}&gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 400 Bad Request |
|---|
| Status | 403 Forbidden |
|---|
| Status | 500 Internal Server Error |
|---|
Authorization: KERNEL_CARDS
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards?qrCode={{cardQRcode}}&gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards?qrCode={{cardQRcode}}&gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 400 Bad Request |
|---|
| Status | 403 Forbidden |
|---|
| Status | 500 Internal Server Error |
|---|
Authorization: KERNEL_CARDS
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards?barCode={{cardBarCode}}&gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards?barCode={{cardBarCode}}&gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 400 Bad Request |
|---|
| Status | 403 Forbidden |
|---|
| Status | 500 Internal Server Error |
|---|
Authorization: KERNEL_CARDS
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards?gmtpId={{gmtpId}}&smsCode={{cardSMScode}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards?gmtpId={{gmtpId}}&smsCode={{cardSMScode}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 400 Bad Request |
|---|
| Status | 403 Forbidden |
|---|
| Status | 500 Internal Server Error |
|---|
Authorization: KERNEL_CARDS
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards?gmtpId={{gmtpId}}¬ice={{cardNotice}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards?gmtpId={{gmtpId}}¬ice={{cardNotice}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 400 Bad Request |
|---|
| Status | 403 Forbidden |
|---|
| Status | 500 Internal Server Error |
|---|
In this section you can find all the variants of Get price request.
Authorization: KERNEL_CARDS and (CARD_ACCESS_<id> or CARD_ACCESS_ALL)
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards/{{idCard}}/payment?payTillNow=true&gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards/%7B%7BidCard%7D%7D/payment?payTillNow=true&gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 404 Not Found |
|---|---|
| Content-Type | application/json |
|
|
Authorization: KERNEL_CARDS and (CARD_ACCESS_<id> or CARD_ACCESS_ALL)
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards/{{idCard}}/payment?payTillNow=true&gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards/%7B%7BidCard%7D%7D/payment?payTillNow=true&gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 404 Not Found |
|---|---|
| Content-Type | application/json |
|
|
Authorization: KERNEL_CARDS and (CARD_ACCESS_<id> or CARD_ACCESS_ALL)
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards/{{idCard}}/payment?payTill=2024-01-12T09:05:51.628Z&gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards/%7B%7BidCard%7D%7D/payment?payTill=2024-01-12T09:05:51.628Z&gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 404 Not Found |
|---|---|
| Content-Type | application/json |
|
|
Authorization: KERNEL_CARDS and (CARD_ACCESS_<id> or CARD_ACCESS_ALL)
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/kernel/cards/{{idCard}}/payment?addCredit=1440&gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/kernel/cards/%7B%7BidCard%7D%7D/payment?addCredit=1440&gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 404 Not Found |
|---|---|
| Content-Type | application/json |
|
|
In this section you can find out how to make a simple receipt for your payment.
Use this endpoint in order to create a simplified receipt record.
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{
"addCredit": "",
"cardState": "",
"idCard": "",
"items": [
{
"count": "",
"description": "",
"idCardJournal": "",
"notice": "",
"priceWithVAT": "",
"type": "",
"vatCharge": "",
"vatValue": ""
},
{
"count": "",
"description": "",
"idCardJournal": "",
"notice": "",
"priceWithVAT": "",
"type": "",
"vatCharge": "",
"vatValue": ""
}
],
"number": "",
"priceWithVAT": "",
"vatCharge": "",
"vatValue": ""
}
' "{{APIUrl}}/v1/kernel/receipts/station/:idStation/simple?currencyId=&paymentkindId=&receiptItemName="
POST %7B%7BAPIUrl%7D%7D/v1/kernel/receipts/station/:idStation/simple?currencyId=&paymentkindId=&receiptItemName= HTTP/1.1
Host:
Content-Type: application/json
Accept: application/json
{
"addCredit": "",
"cardState": "",
"idCard": "",
"items": [
{
"count": "",
"description": "",
"idCardJournal": "",
"notice": "",
"priceWithVAT": "",
"type": "",
"vatCharge": "",
"vatValue": ""
},
{
"count": "",
"description": "",
"idCardJournal": "",
"notice": "",
"priceWithVAT": "",
"type": "",
"vatCharge": "",
"vatValue": ""
}
],
"number": "",
"priceWithVAT": "",
"vatCharge": "",
"vatValue": ""
}
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 201 Created |
|---|---|
| Content-Type | application/json |
|
|
| Status | 400 Bad Request |
|---|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|
In this section you can find out how to confirm the payment.
Authorization: KERNEL_CARDS and (CARD_ACCESS_<id> or CARD_ACCESS_ALL)
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{
"priceWithVAT": {{cardPrice}},
"addCredit":{{cardCreditAdd}},
"items": {{ReceiptItems}},
"receiptYear": {{ReceiptNumber}},
"receiptNumber": {{ReceiptYear}}
}' "{{APIUrl}}/v1/kernel/cards/{{idCard}}/payment?payTillNow=true&gmtpId={{gmtpId}}"
POST %7B%7BAPIUrl%7D%7D/v1/kernel/cards/%7B%7BidCard%7D%7D/payment?payTillNow=true&gmtpId={{gmtpId}} HTTP/1.1
Host:
Content-Type: application/json
Accept: application/json
{
"priceWithVAT": {{cardPrice}},
"addCredit":{{cardCreditAdd}},
"items": {{ReceiptItems}},
"receiptYear": {{ReceiptNumber}},
"receiptNumber": {{ReceiptYear}}
}
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 404 Not Found |
|---|---|
| Content-Type | application/json |
|
|
Use this endpoint to obtain a list of all Static info or a specific static information record specified by its name.
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/config/staticInformations?gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/config/staticInformations?gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|
Use this endpoint to create a new static information record.
curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{
"description": "StaticData1",
"name": "StaticData1",
"value": "STATIC DATA VALUE"
}' "{{APIUrl}}/v1/config/staticInformations?gmtpId={{gmtpId}}"
POST %7B%7BAPIUrl%7D%7D/v1/config/staticInformations?gmtpId={{gmtpId}} HTTP/1.1
Host:
Content-Type: application/json
Accept: application/json
{
"description": "StaticData1",
"name": "StaticData1",
"value": "STATIC DATA VALUE"
}
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 201 Created |
|---|---|
| Content-Type | application/json |
|
|
| Status | 400 Bad Request |
|---|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|
Use this endpoint to obtain the details of a static information record by its ID.
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/config/staticInformations/:id?gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/config/staticInformations/:id?gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|
Use this endpoint to update/change properties of a static information record specified by its ID.
curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d '{
"description": "",
"idStaticInfo": "",
"name": "",
"value": ""
}' "{{APIUrl}}/v1/config/staticInformations/:id?gmtpId={{gmtpId}}"
PUT %7B%7BAPIUrl%7D%7D/v1/config/staticInformations/:id?gmtpId={{gmtpId}} HTTP/1.1
Host:
Content-Type: application/json
Accept: application/json
{
"description": "",
"idStaticInfo": "",
"name": "",
"value": ""
}
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 201 Created |
|---|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|
Use this endpoint to detele the static information record specified by its ID.
curl -X DELETE -H "Accept: application/json" "{{APIUrl}}/v1/config/staticInformations/:id?gmtpId={{gmtpId}}"
DELETE %7B%7BAPIUrl%7D%7D/v1/config/staticInformations/:id?gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
| Status | 204 No Content |
|---|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|
Use this endpoint to update/change value of the static information specifed by its ID.
curl -X PUT -H "Accept: application/json" -H "Content-Type: application/json" "{{APIUrl}}/v1/config/staticInformations/:id/value?value=11&gmtpId={{gmtpId}}"
PUT %7B%7BAPIUrl%7D%7D/v1/config/staticInformations/:id/value?value=11&gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
Content-Type: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 201 Created |
|---|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|
Use this endpoint to obtain the details of a Zone record based on its ID.
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/config/zones/:id?gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/config/zones/:id?gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|
Use this endpoint to obtain a list of Zonees currently available in the system.
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/config/zones?gmtpId={{gmtpId}}&showAll=true"
GET %7B%7BAPIUrl%7D%7D/v1/config/zones?gmtpId={{gmtpId}}&showAll=true HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|
Use this endpoint to get information of parkings. Empty param parking get all parkings.
curl -X GET -H "Accept: application/json" "{{APIUrl}}/v1/config/parkings?gmtpId={{gmtpId}}"
GET %7B%7BAPIUrl%7D%7D/v1/config/parkings?gmtpId={{gmtpId}} HTTP/1.1
Host:
Accept: application/json
| Status | 200 OK |
|---|---|
| Content-Type | application/json |
|
|
| Status | 400 Bad Request |
|---|
| Status | 401 Unauthorized |
|---|
| Status | 403 Forbidden |
|---|
| Status | 404 Not Found |
|---|