💳 Create a Payment Request
Before asking a holder to present a payment credential, the POS reserves a pending transaction with
the terminal backend. It then builds an ISO/IEC 18013-5
DeviceRequest
that asks for only the claims needed for the receipt and includes transaction_data containing the
exact payment details.
The holder device signs this transaction data as part of the response. That binds the customer's authorization to the transaction ID, amount, currency, and payee—not merely to a generic request.
Reserve and bind the transaction
Here, the following operations are performed:
- Reserve a server-side transaction
- Serialize the ISO/IEC 18013 request data payload that contains the amount, payee and other details
- Create a device request with this payload embedded in the transaction-data element
Adapt these values for your merchant:
CARD_DOCTYPEand namespace — the credential type your terminal accepts.- Requested claims — request the minimum data required for the payment and receipt.
TERMINAL_PAYEE_NAME,TERMINAL_PAYEE_ID, and currency — values the holder should see and authorize.payeeAccount— the account that the authoritative payment service credits.
Do not treat the returned data as sufficient proof by itself. The records server must verify issuer trust, the device signature, and that the signed transaction matches the reservation before it settles the payment.