BalanceInquiry reads a balance without transacting. It runs asynchronously like other operations (POST /balanceinquiry, then poll) and comes in three variants distinguished by the extension block.
Gift card balance
"BalanceInquiryRequest": {
"LoyaltyAccountReq": {"LoyaltyAccountID": {"EntryMode": "Scanned", "IdentificationType": "BarCode", "LoyaltyID": "3523670286019"}},
"MarketpayPaymentExtensions": {"Operation": "GiftCardBalanceInquiry", "CardId2": "3523670286019", "ProductType": "CRFGIFTCRD"}
}Loyalty account balance
The same shape with the loyalty product type; the account is identified by scan or card presentation.
Payment card balance
"BalanceInquiryRequest": {"PaymentAccountReq": {}, "MarketpayPaymentExtensions": {"Operation": "PaymentCardBalanceInquiry"}}The cardholder presents the card on the terminal; the response returns the balance where the card product supports it.
The response
BalanceInquiryResponse carries the account status with CurrentBalance and Currency, plus the account identification echoed back. Standard result rules apply (Response.Result, ErrorCondition).
Note
Which variants are available depends on your product scope (gift card programme, loyalty programme). Declare them for certification; each maps to a conditional test.
Related
- Payment features — gift card and loyalty payments the balances relate to.