PayPay · AsyncAPI Specification
Paypay Webhooks
Version
View Spec
View on GitHub
CompanyFintechPaymentsMobile PaymentsQR Code PaymentsDigital WalletJapanMerchant PaymentsAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-07-20'
method: searched
source: https://www.paypay.ne.jp/opa/doc/v1.0/dynamicqrcode
type: Webhooks
note: >-
PayPay OPA sends webhook (HTTP POST) notifications on transaction state changes.
The client configures a webhook URL (via the merchant panel); each event carries a
notification_type field. PayPay recommends IP-whitelisting PayPay's addresses.
Clients must respond 200 OK. No published AsyncAPI document exists; this captures
the documented webhook catalog.
delivery:
transport: HTTP POST
ack: respond with HTTP 200 OK (short body like "OK" recommended)
security: client IP allowlist of PayPay addresses
setup: PayPay merchant panel (webhook endpoints configured during onboarding)
events:
- notification_type: Transaction
name: AUTHORIZED
trigger: A payment authorization is created (or its expiry unexpectedly shortened for PAY_LATER_CC)
- notification_type: Transaction
name: COMPLETED
trigger: Payment captured / instant payment completed
- notification_type: Transaction
name: EXPIRED
trigger: Payment authorization expired
- notification_type: Transaction
name: CANCELED
trigger: Payment authorization reverted
- notification_type: Transaction
name: REFUNDED
trigger: Payment refunded (state transition; webhook per docs)
recon_file:
channel: webhook
description: >-
PayPay generates a daily transaction reconciliation CSV per merchant_id and
notifies its availability by webhook (notification of preauth_transaction_*.csv,
Shift_JIS, delivered 01:30-10:00 JST, 2h retention / 1 week resend window).
example_payload:
notification_type: Transaction
merchant_id: '123456789'
store_id: '123456'
pos_id: '123'
order_id: '123456789123456'
authorized_at: '2020-03-13T13:35:30Z'
expires_at: '2020-04-13T13:35:29Z'
order_amount: '12345'
state: AUTHORIZED