Ping++ · AsyncAPI Specification

Ping Webhooks

Version

View Spec View on GitHub CompanyPaymentsAggregated PaymentFintechPayment GatewaySplit SettlementWeChat PayAlipayUnionPayChinaPayoutsAsyncAPIEvents

AsyncAPI Specification

ping-webhooks.yml Raw ↑
generated: '2026-07-20'
method: searched
source: https://docs.pingxx.com/api/Webhooks%20%E5%9B%9E%E8%B0%83%E6%A6%82%E8%BF%B0.html
spec_type: Webhooks
note: >-
  Ping++ does not publish an AsyncAPI document. It documents an outbound Webhooks event surface:
  events are delivered as HTTP POST with a JSON Event object in the body. This artifact captures
  that catalog verbatim from the docs (no AsyncAPI is fabricated).
delivery:
  method: POST
  content_type: application/json
  body: Event object
  ack: respond HTTP 2xx to acknowledge; any non-2xx (return 500) triggers retry
  retry:
    max_attempts: 10
    window: ~25 hours
    schedule: [5s, 10s, 2min, 5min, 10min, 30min, 1h, 2h, 6h, 15h]
event_object:
  fields:
    - {name: id, type: string, description: "event id generated by Ping++ (28-char string)"}
    - {name: object, value: event}
    - {name: livemode, type: boolean, description: whether the event occurred in production}
    - {name: created, type: timestamp}
    - {name: pending_webhooks, type: int, description: number of not-yet-delivered webhooks}
    - {name: type, type: string, description: event type (see event_types)}
    - {name: request, type: string, description: "API Request ID; null if not API-triggered"}
    - {name: data, type: hash, description: "object bound to the event; previous_attributes present on *.updated events"}
event_types:
  - {type: summary.daily.available, description: "previous day (00:00-23:59:59) transaction amount & count summary, fired ~04:00 daily"}
  - {type: summary.weekly.available, description: "previous week (Mon-Sun) summary, fired ~04:00 each Monday"}
  - {type: summary.monthly.available, description: "previous month summary, fired ~04:00 on the 1st"}
  - {type: charge.succeeded, description: "charge succeeded"}
  - {type: charge.failed, description: "charge (contract deduction) failed"}
  - {type: refund.succeeded, description: "refund succeeded"}
  - {type: refund.failed, description: "refund failed"}
  - {type: transfer.succeeded, description: "enterprise transfer/payout succeeded"}
  - {type: transfer.failed, description: "enterprise transfer/payout failed"}
  - {type: batch_transfer.succeeded, description: "batch transfer fully or partially succeeded"}
  - {type: batch_transfer.failed, description: "batch transfer fully failed"}
  - {type: batch_refund.succeeded, description: "batch refund fully or partially succeeded"}
  - {type: red_envelope.sent, description: "red envelope sent"}
  - {type: red_envelope.received, description: "red envelope received"}
  - {type: customs.succeeded, description: "customs declaration succeeded"}
  - {type: order.succeeded, description: "order paid successfully"}
  - {type: order.refunded, description: "order refunded successfully"}
  - {type: balance.withdrawal.succeeded, description: "withdrawal succeeded"}
  - {type: balance.withdrawal.failed, description: "withdrawal failed"}
  - {type: batch_withdrawal.succeeded, description: "batch withdrawal succeeded"}
  - {type: batch_withdrawal.failed, description: "batch withdrawal fully or partially failed"}
  - {type: batch_withdrawal.partially_succeeded, description: "batch withdrawal partially succeeded"}
  - {type: batch_withdrawal.canceled, description: "batch withdrawal canceled"}
  - {type: royalty_settlement.succeeded, description: "royalty settlement fully succeeded"}
  - {type: royalty_settlement.partially_succeeded, description: "royalty settlement partially succeeded"}
  - {type: royalty_settlement.failed, description: "royalty settlement fully failed"}
  - {type: royalty_settlement.canceled, description: "royalty settlement canceled"}
  - {type: recharge.succeeded, description: "recharge succeeded"}
  - {type: recharge.refund.succeeded, description: "recharge refund succeeded"}
test_mode_simulation:
  param: metadata[pingpp_tc]
  values:
    "001": simulate duplicate webhook delivery after a successful charge
    "002": delay the async webhook by 5 minutes
  note: test mode only; does not affect live delivery

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/ping-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.