Disclaimer

This document is only collection of author’s notes, experiences and point of views. It is not, in any meaning, either complete description of the topic nor official RTB documentation. It may be inaccurate, incomplete, obsolete, misleading or completely wrong. It may even cause loss of data or damage system integrity. It may not comply with company codex, values, presentation style or economic interests or may reveal company secrets.

As such, it is absolutely prohibited to distribute this document outside of RTB & Co. GmbH. Such an action may result into legal acts against both the sender and the company. It is only intended, after review of technical and presentational correctness and accuracy, to be used as an information source for official documentation.

Always contact documentation department for information about current presentation style and allowed formats before creating customer’s documentation.

1. Overview

This document describes the integration between PDM and Satispay. The process also involves PDM.control as a service provider.

1.1. PDM

The handling of value master requests is implemented using the real-time request framework developed earlier (Real-time multi request).

2. Functions

The available functions were selected based on One-off - Dynamic Code workflow.

2.1. Create Payment

Request create payment (69) initiates a new payment on the Satispay system. Refer to Create payment in Satispay documentation. The command initiates MATCH_CODE flow. As a result, a unique string which can be used as the content of a QR code is generated. This can be scanned by the Satispay app and used for payment.

To initiate a payment, PDM must use request 69. It can have the following parameters:

  • amount (required) - The amount of money to pay. Scaled up according to DPA.

  • idempotencyKey (optional) - A unique ID for retry. Refer to idempotency.

  • parkStart (required) - Start of parking. E.g. 2025-1022T11:27:31

  • parkEnd (required) - Start of parking. E.g. 2025-1022T15:27:31

The currency is taken from WKZ mnemonic.

Example Request
{
  "REQ":69,
  "amount":50,
  "idempotencyKey":"7a0de174-c2a0-4223-8292-93ede11de4a8",
  "parkStart": "2025-10-22T11:27:31",
  "parkEnd": "2025-10-22T15:27:31"
}

The response to this request contains the response from Satispay, with some uninteresting parts removed to make the response shorter.

Example of Successful Response
{
  "REQ":69,
  "body": {
    "id": "019a0bd1-b123-71a6-b287-a404e2e61aaa",
    "code_identifier": "S6Y-PAY--019A0BD1-B123-71A6-B287-A404E2E61AAA",
    "type": "TO_BUSINESS",
    "amount_unit": 50,
    "currency": "EUR",
    "status": "PENDING",
    "expired": false,
    "sender": {
      "type": "CONSUMER"
    },
    "insert_date": "2025-10-22T12:08:03.117Z",
    "expire_date": "2025-10-22T14:08:03.113Z",
    "flow": "CHARGE",
  },
  "statusCode": 200
}
Example of Error Answer
{
  "REQ":69,
  "statusCode": 401,
  "body": {
    "code": 34,
    "message": "Unauthorized",
    "wlt": "ImZwz3cu"
  }
}

Refer to Refunds:

2.2. Get Payment Details

Request get payment details (70) provides detailed information about an existing payment. Refer to Get payment in Satispay documentation.

Use the content of the id field from the create payment response to reference the payment for which to get information.

To initiate the function, PDM must use request 70. It can have the following parameters:

  • paymentId (required) - The payment ID to get information about. Use the content of the id field from the create payment response.

  • responseWaitTime (optional) - Specifies the duration, in seconds, for which the HTTP call will be hanging, waiting for a payment status change. The maximum allowed value is 60 seconds. Value 0 cal be also set. It means, that call returns immediately with current state without waiting for payment status change.

Example Request
{
  "REQ":70,
  "paymentId":"019a0bd1-b123-71a6-b287-a404e2e61aaa",
  "responseWaitTime": 42
}

Responses to this request have the same form and contain the same information as responses to request Create Payment. Refer to Example of Successful Response and Example of Error Answer.

2.3. Cancel or refund payment

Request cancel or refund payment (71) allows to cancel an existing payment and return money to customer. Refer to Update payment in Satispay documentation. This function initiates CANCEL_OR_REFUND flow.

To initiate the function, PDM must use request 70. It can have the following parameters:

  • paymentId (required) - The payment ID to get information about. Use the content of the

Example Request
{
  "REQ":71,
  "paymentId":"019a0bd1-b123-71a6-b287-a404e2e61aaa"
}

Responses to this request have the same form and contain the same information as responses to request Create Payment. Refer to Example of Successful Response and Example of Error Answer.