9. Balance inquiry

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.