Terminals API

Request terminal pairing code

Changed on

ℹ️ Test mode

This endpoint currently does not support test mode yet.

Request a pairing code to onboard a point-of-sale terminal.

The response includes a human-readable code for manual entry on the terminal, and a QR Code as a base64 encoded SVG data URI for scanning if you specify the query parameter include with value details.qrCode.

Pairing codes expire after 90 days (see expiresAt) and can be used multiple times.

🔑 Access with

API key

OAuth access with terminals.write

post/terminals/pairing-codes

Request

  • Base URL
    https://api.mollie.com/v2
  • URL
    https://api.mollie.com/v2/terminals/pairing-codes
  • Auth
    • HTTP bearer
    • or OAuth 2
      Authorization code: https://my.mollie.com/oauth2/authorize
      Token URL: https://api.mollie.com/oauth2/tokens scopes: terminals.write

Query parameters

include'details.qrCode' nullable
Example:details.qrCode

Include additional information in the response.

Request body

profileIdstring required

The ID of the profile to pair the terminal with.

Example request

{
  "profileId": "pfl_jA9bC4DkFj3G"
}

Response

The requested terminal pairing code object.

resourcestring required

Indicates the response contains a terminal pairing code object. Will always contain the string terminal-pairing-code for this endpoint.

idstring required

The unique identifier of the pairing code. Example: termpc_R7gX5Ea9bC4DkFj3G.

modestring required

Whether this entity was created in live mode or in test mode.

Possible values: live test

codestring required

The human-readable pairing code to be entered on the terminal. This code is multi-use and will expire after the time indicated in expiresAt.

profileIdstring required

The ID of the profile the terminal is being paired with.

statusstring required

The status of the pairing code.

Possible values: active expired revoked

expiresAtstring required

The date and time the pairing code expires, in ISO 8601 format. Pairing codes expire 90 days after creation. After this time, the code can no longer be used to pair a terminal.

revokedAtstring nullable

The date and time the pairing code was revoked, in ISO 8601 format. null if the code has not been revoked.

createdAtstring required

The entity's date and time of creation, in ISO 8601 format.

Example response

{
  "id": "termpc_R7gX5Ea9bC4DkFj3G",
  "mode": "live",
  "code": "20eb5ca1f78b48ae9e2b",
  "profileId": "pfl_jA9bC4DkFj3G",
  "status": "active",
  "details": {
    "qrCode": {
      "height": 256,
      "width": 256,
      "src": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4w..."
    }
  },
  "expiresAt": "2025-12-10T10:15:00+00:00",
  "revokedAt": "2025-12-10T10:03:23+00:00",
  "createdAt": "2024-03-20T09:13:37+00:00",
  "_links": {
    "self": {
      "href": "https://...",
      "type": "application/hal+json"
    },
    "profile": {
      "href": "https://...",
      "type": "application/hal+json"
    },
    "documentation": {
      "href": "https://...",
      "type": "application/hal+json"
    }
  }
}

Changes