payware_poi_create
Creates one payment POI under a shop for payer scans, using a required shop code to attach the physical payment point to the correct merchant location.
Instructions
[Merchant] Create a single POI (Point of Interaction) - a physical payment point a payer scans.
Endpoint: POST /poi -> 201 Created
A POI belongs to a shop, and a shop belongs to a merchant. shopCode is required - use
payware_shops_list to find one rather than guessing. Banks do not own POIs; a financial-institution
principal gets 403 on every POI endpoint, not an empty result.
ttlSeconds is the price-session TTL, not the POI's lifetime. It bounds how long a price set on
this POI stays claimable before the POI returns to IDLE. Range 60-600 seconds; the server
defaults it to 300.
Creating many at once? Use payware_poi_create_batch instead. It creates up to 50 in one
atomic call, which is both faster and safer than a loop over this tool: a loop that fails halfway
leaves a half-built estate with no record of where it stopped.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"shopCode": "<shopCode>"
},
"name": "payware_poi_create"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Human-readable POI name, e.g. "Till 3" or "Gate B". Shown in the portal and in POI listings. | |
| shopCode | Yes | Code of the shop this POI belongs to. Required. Find one with payware_shops_list. | |
| partnerId | No | Partner ID from the payware dashboard. Uses PAYWARE_PARTNER_ID env var as default. | |
| privateKey | No | RSA private key for JWT signing. Uses the environment-specific key as default. | |
| ttlSeconds | No | Price-session TTL in seconds - how long a price set on this POI stays claimable before it returns to IDLE. Server default 300. | |
| useSandbox | No | Use sandbox environment for testing | |
| callbackUrl | No | HTTPS URL for this POI's callbacks: poi.scanned (with the new transaction id), poi.expired (price not scanned) and the sale's TRANSACTION_FINALIZED (final status, with poiId). Signed by the ISV that set the price, otherwise the merchant. A POI without one sends no callbacks - there is no per-price callback URL. Must present a publicly-trusted TLS certificate and resolve to a public address. |