1. Pricing
Pricing defines payment options available to the customer - e.g. “1 hour”, “full day”, “weekend ticket”. Each entry is a separate purchase option shown on the product page.Pricing entry fields
| Field | Description |
|---|---|
price | Amount in minor units (e.g. 150 = 1.50 PLN). |
description | Human-readable description (e.g. “1 hour parking”). |
details | JSON with extra data (e.g. currency, vat). |
Endpoints – Pricing
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/pay/products/{productId}/pricing/entries | Returns all pricing entries for the product. |
| POST | /api/pay/products/{productId}/pricing/entries | Creates a new pricing entry. |
| PATCH | /api/pay/products/{productId}/pricing/entries/{entryId} | Updates a pricing entry. |
| DELETE | /api/pay/products/{productId}/pricing/entries/{entryId} | Deletes a pricing entry. Option no longer available at checkout. |
Create pricing entry
Update pricing entry
2. Forms
Forms collect data required for purchase - e.g. email, license plate, contact details. Forms are versioned; each change (add/edit/remove field) creates a new version. The current version is marked withisCurrent.
Form field (Field) properties
| Field | Description |
|---|---|
name | Field name (e.g. email). |
type | Type: TEXT, NUMBER, SELECT, EMAIL, etc. |
labels | Language labels (e.g. pl, en). |
validators | Validations: required, pattern, maxLength, etc. |
Endpoints – Forms
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/pay/product/{productId}/form | List forms for PAY products. |
| GET | /api/pay/product/{productId}/form/{formId} | Form details (fields, version, isCurrent). |
| POST | /api/pay/product/{productId}/form | Creates a form for the product. |
| DELETE | /api/pay/product/{productId}/form/{formId} | Deletes a form. Does not affect data from completed purchases. |
Endpoints – Fields
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/pay/product/{productId}/form/field/{fieldId} | Field details. |
| POST | /api/pay/product/{productId}/form/{formId}/fields | Adds a field - creates a new form version; new version becomes current. |
| PATCH | /api/pay/product/{productId}/form/{formId}/field/{fieldId} | Updates a field - creates a new form version with updated field. |
| DELETE | /api/pay/product/{productId}/form/{formId}/field/{fieldId} | Removes a field - creates a new version without that field. |
Create form
Add field (e.g. email)
isCurrent).
3. UI customization
Customization controls the look and copy of the product checkout page. All text (titles, buttons, descriptions) is configured via API - the frontend is fully driven by the partner without code changes.Customization parameters - what they modify
| Parameter | What it modifies | Where it appears |
|---|---|---|
title | Main page/product title. | Header at the top of the checkout view. |
subtitle | Text below the title. | Directly under the title (subtitle). |
buttonText | Call-to-action button label (e.g. “Buy now”, “Pay”). | Confirmation button on the payment page. |
summaryHeader | Summary section heading. | Heading of the order summary block before payment. |
summaryFirstLine | First line in the summary section. | Text in the summary (e.g. amount or product description). |
summarySecondLine | Second line in the summary section. | Next line in the summary. |
cardDescription | Product card description. | Description on the product card/listing (e.g. product picker or preview). |
locale | Language/locale (e.g. pl-PL, en-GB). | Determines which text set is used; allows multiple customizations per product (e.g. PL and EN). |
locale; the system picks the right one by user or context.
Endpoints – Customization
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/pay/product/{productId}/customization | List all customizations. |
| GET | /api/pay/product/{productId}/customization/{id} | Customization details (all fields). |
| POST | /api/pay/product/{productId}/customization | Create customization for product. |
| PATCH | /api/pay/product/{productId}/customization/{id} | Update customization (any fields). Change is reflected immediately on the frontend. |
| DELETE | /api/pay/product/{productId}/customization/{id} | Delete customization. Product stops using that config; other customizations and services are unchanged. |
Create customization
Update customization
4. Webhooks
Webhooks automatically notify the partner of completed payments or fetch pricing from an external system. After registering a webhook, assign it to a product - then events for that product are sent to your endpoint.Webhook configuration fields
| Field | Description |
|---|---|
endpoint | URL Paymove sends the request to (POST). |
method | HTTP method (e.g. POST). |
headers | Headers sent with the request (e.g. Authorization, Content-Type). |
requestTemplate | Request body template (variables substituted by Paymove). |
responseTemplate | Expected response structure from the partner. |
expectedCode | Expected HTTP response code (e.g. 200). |
expectedResponse | Expected response body (e.g. { "status": "ok" }). |
retries | Number of retries on failure. |
type | Event type (e.g. PAYMENT). |
Endpoints – Webhooks
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/plugin/webhook | List webhooks. Optional query: productId, partnerId. |
| GET | /api/plugin/webhook/{webhookId} | Webhook details. |
| GET | /api/plugin/webhook/{webhookId}/products | Products linked to the webhook. |
| POST | /api/plugin/webhook | Create webhook. |
| POST | /api/plugin/webhook/{webhookId}/products/{productId} | Assign webhook to product. |
| PATCH | /api/plugin/webhook/{webhookId} | Update webhook. Affects all linked products. |
Create webhook
/api/plugin/webhook/{webhookId}/products/{productId} to link the webhook to the product. From then on, events (e.g. successful payment) for that product are sent to your endpoint.
5. Subproduct and QR codes
A subproduct links a PAY product to an external identifier (externalId) and generates a QR code in the chosen format (PNG/SVG). After scanning, the user is taken to payment for that subproduct (e.g. ticket, payment request).
Input fields
| Field | Description |
|---|---|
externalId | External subproduct identifier (e.g. ticket ID in your system). |
imageFormat | QR code image format: svg or png. |
bannerType | Banner/card type (e.g. ticket) - affects presentation/layout. |
Endpoint – Subproduct
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/pay/product/{productId}/subproduct | Registers subproduct by externalId and generates QR code. After registration, the user can pay for the subproduct by scanning the code. |
