MyQ REST API documentation

External Account API


The External Account server is responsible for handling requests received from the MyQ server. These requests primarily involve session creation and termination, as well as facilitating payments within the active session. To authenticate the request the 'Basic' HTTP authentication scheme is used.

Payment session control

Start a payment session

In order to commence a payment session, the MyQ server transmits user identification parameters to the payment server, indicating the user to whom the session should be attributed.

These parameters are:

  • username

  • alias

  • card

  • personalNumber

The endpoint provides an identification number that represents the initiated session.

POST /sessions

Headers:
Content-Type: application/json
Authentication: Basic {login:pwd in base64}

Request body:
{
  "username": "string",
  "aliases": [
    "string"
  ],
  "cards": [
    "string"
  ],
  "personalnumber": "string"
}

Response body:
{
  "id": 0
}

Get balance for the session

The session balance refers to the amount of available credit allocated to the user. This endpoint returns the balance parameter that represents the available credit.

GET /sessions/{session id}

Headers:
Content-Type: application/json
Authentication: Basic {login:pwd in base64}

Response body:
{
  "balance": 0
}

Block credit for the session

Blocking of credit is a process to temporarily decrease the available balance until the session finishes. This prevents spending the same credit multiple times resulting in an negative balance.

POST /sessions/{session id}/block

Headers:
Content-Type: application/json
Authentication: Basic {login:pwd in base64}

Request body:
{
  "amount": 0
}

Response code:
  204 (Amount was blocked)

End the session

Ending the session and releasing the blocked credit.

DELETE /sessions/{session id}

Headers:
Authentication: Basic {login:pwd in base64}

Response codes:
  202 OK. Blockings will be released later.
  204 OK

Creating and committing payments

Create a payment

A payment transaction is generated within a session. The request must include an amount parameter indicating the payment size. In response, an id and the permitted amount of credit to be paid are returned.

POST /sessions/{session id}/payments

Headers:
Content-Type: application/json
Authentication: Basic {login:pwd in base64}

Request body:
{
  "amount": 0
}

Response body:
{
  "id": 0,
  "amount": 0
}

Update the payment

Updating the payment changes the amount to be paid after commiting the payment.

PATCH /sessions/{session id}/payments/{payment id}

Headers:
Content-Type: application/json
Authentication: Basic {login:pwd in base64}

Request body:
{
  "amount": 0
}

Response body:
{
  "id": 0,
  "amount": 0
}

Commit the payment

Commiting the payment, the available balance of the session is modified. Prior to utilizing this endpoint, it is necessary to call the endpoint for creating the payment.

POST /sessions/{session id}/payments/{payment id}/commit

Headers:
Content-Type: application/json
Authentication: Basic {login:pwd in base64}

Response code:
  204 OK

Rollback the payment

Payments have the capability to be rolled back, resulting in a restoration of the session amount to its previous state.

POST /sessions/{session id}/payments/{payment id}/rollback

Headers:
Content-Type: application/json
Authentication: Basic {login:pwd in base64}

Response code:
  204 OK

Error Message

All responses with status code >= 400 are considered as errors.

Example error response:

{
  "error": {
    "message": "Error description"
  }
}