Skip to main content
Version: 2.0

Marketplace

Once your integration is complete, you can market it to thousands of PDK dealers through our integration marketplace, which is available directly within the pdk.io web interface. Each application within the marketplace is represented by an integration tile. Below is a screenshot of the integration tile for the Microsoft Entra integration.

integration tile

In addition to making your integration more discoverable, an integration tile will also provide the following technical benefits:

  • Dealers will be able to easily enable your integration with the flip of a switch. This is equivalent to authorizing your application by adding a permission, but it doesn't require dealers to know the email address associated with your integration.
  • Dealers and customers will be able to easily and securely pass their system ID to your application via the configuration URL.

Configuration

When users click the configure button on your integration tile, they will be redirected to your configuration URL, which is hosted by your application. This URL must be registered by the PDK software integrations team (integrations@prodatakey.com). The behavior of the configuration URL will depend on the needs of your application. For example, you may need to authenticate the user in order to connect their PDK system to the correct user account. The configuration flow is outlined in the steps below.

Step 1: Receive a configuration token

When users are redirected to your application, a token query string parameter is appended to the configuration URL. Your application can exchange this encrypted token for the user's system ID. In the example below, the registered configuration URL is https://example.com/configure.

GET https://example.com/configure?token={{configuration_token}} HTTP/1.1

Step 2: Decrypt the configuration token

The decrypted payload of the configuration token can be retrieved with the following request.

Request

GET https://accounts.pdk.io/api/payload?token={{configuration_token}} HTTP/1.1
Authorization: Bearer {{id_token}}
ParameterLocationTypeRequiredDescription
configuration_tokenQueryStringYesThe configuration token.
id_tokenHeaderStringYesA valid ID token.

Response

The response includes the systemId, which your application can use to complete the configuration.

HTTP/1.1 200 OK
Content-Type: application/json

{
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3",
"iat": 1708465125,
"exp": 1708465425,
"iss": "https://accounts.pdk.io/"
}
PropertyTypeDescription
systemIdStringThe system ID.
iatStringA Unix timestamp (in seconds) representing the time at which the token was issued.
expStringA Unix timestamp (in seconds) representing the time at which the token will expire.
issStringThe token issuer.

Step 3: Return the user to PDK

Once the user has completed the configuration within your application, you can return the user to the integrations tab in pdk.io to complete the experience.

GET https://pdk.io/systems/{{system_id}}/settings/integrations HTTP/1.1
ParameterLocationTypeRequiredDescription
system_idPathStringYesThe system ID.