payment resource and describe every charge your app bills a creator for, one-time or recurring, against your pricing plans.
Every event requires
read:self. Each arrives in the envelope, and the tables below describe data. app.payment.* events cover one-time purchases and subscription charges alike, so branch on billing_reason to tell them apart. A subscription’s initial charge emits both app.payment.succeeded with billing_reason: "subscription_initial" and app.subscription.activated.
Payment resource
data.object is "payment" for all three events. Amounts are integers in USD cents.
Risk-screening declines report
reason: "other", and the raw processor message is never forwarded.
Billing reasons
Examples
app.payment.succeeded (subscription initial charge)
"billing_reason": "one_time" and an appotp_ purchase reference, and a renewal carries "billing_reason": "subscription_renewal".
app.payment.pending
app.payment.failed
Reconciling
data.id matches the invoiceNumber path parameter on GET /apps/{appUuid}/payments/{invoiceNumber}. The event id hashes your app, the invoice number and the topic, so a re-emitted charge carries the same id and deduplicates on it. See Reconciliation.