Skip to content
API DocsDocs

HPP Webhook Callbacks

Handle webhook callbacks from Hosted Payment Page flows

1 min readUpdated Mar 26, 2026

Canonical reference: For complete webhook callback routing — paymentMethod/apmType query parameters, callback identification, payload schemas, and code examples — see Webhook Callback & Transaction Lifecycle.

#HPP-Specific Behavior

In HPP flows, Exirom does not know the final payment method at intent creation time — the customer selects it on the hosted checkout page. As a result:

  • The callback payload structure depends on which method the customer chose
  • Exirom appends ?paymentMethod=card or ?paymentMethod=apm&apmType={APM} to your callbackUrl so you can route parsing deterministically

Your single webhook endpoint handles all cases:

app.post('/webhooks/payment', express.json(), (req, res) => {
  res.status(200).send('OK'); // Respond immediately
 
  const { paymentMethod, apmType } = req.query;
  if (paymentMethod === 'card') {
    handleCardCallback(req.body);
  } else if (paymentMethod === 'apm') {
    handleApmCallback(req.body, apmType);
  }
});

#See Also

Was this helpful?