---
title: "Auto-topup purchase failed (transient or hard)."
method: POST
path: "billingTopupFailed"
tags: ["Webhooks"]
---

# Auto-topup purchase failed (transient or hard).

`POST billingTopupFailed` (webhook)

## Headers

- `OnPage-Event` string, required
- `OnPage-Delivery-Id` string, required
- `OnPage-Timestamp` string, required
- `OnPage-Signature` string, required

## Payload

- BillingTopupFailedWebhookBody: Outbound delivery body for `billing.topup_failed`. Minimum fields are `tpaId` + `reason`; additional per-reason context (e.g. `pmStatus`, `paymentIntentId`, `nextAttemptAt`) may appear.
  - `tpaId` string, required
  - `reason` string, required

## Acknowledgement `200`

Ack. Any 2xx is accepted.

---

[API](https://skmtc.dev/on-page/apis/on-page-ai-api.md) - [All operations](https://skmtc.dev/on-page/apis/on-page-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/on-page/apis/on-page-ai-api/revisions/a081e8701c19?raw)
