Docs

Event payload examples

Copyable full event envelopes for app webhooks and optional XRPC receivers.

Closed beta@atmosphere-money/app-nodeSDK beta: 0.0.0-beta.0ATM API beta: 2026-0642 lexicons

Compatible with the closed-beta ATM app APIs and versioned ATM event headers. Check atm-api-version on every webhook or XRPC receiver event.

How to read examples

These are complete app event envelopes. HTTP webhooks and XRPC receiver callbacks use the same JSON body. Only the transport auth changes.

idStable event id. Use for logs and support.
deliveryIdUnique delivery attempt id. Use for idempotency before side effects.
environmenttest or live. Never mix fulfillment state across environments.
appDidThe app receiving the event. This should match the configured app environment.
dataTyped payload for the event type. Store the ATM id beside your app order id.

Payment completed

json
{
  "id": "evt_pay_completed_01",
  "deliveryId": "del_pay_completed_01",
  "environment": "test",
  "type": "payment.completed",
  "appDid": "did:plc:app",
  "createdAt": "2026-06-05T14:00:00.000Z",
  "data": {
    "paymentId": "pay_01HZYATM0001",
    "amount": 2500,
    "currency": "usd",
    "paymentType": "shop",
    "status": "succeeded",
    "recipientDid": "did:plc:creator",
    "recipientHandle": "creator.example",
    "payerDid": "did:plc:buyer",
    "payerHandle": "buyer.example",
    "listing": {
      "uri": "at://did:plc:creator/money.atmosphere.product/abc",
      "cid": "bafy..."
    },
    "appOrderId": "ord_123",
    "checkoutToken": "atm_checkout_123"
  }
}

Payment refunded

json
{
  "id": "evt_pay_refunded_01",
  "deliveryId": "del_pay_refunded_01",
  "environment": "test",
  "type": "payment.refunded",
  "appDid": "did:plc:app",
  "createdAt": "2026-06-05T15:30:00.000Z",
  "data": {
    "paymentId": "pay_01HZYATM0001",
    "refundId": "refund_01HZYATM0002",
    "amountRefunded": 2500,
    "currency": "usd",
    "reason": "requested_by_customer",
    "appOrderId": "ord_123"
  }
}

Subscription updated

json
{
  "id": "evt_sub_updated_01",
  "deliveryId": "del_sub_updated_01",
  "environment": "test",
  "type": "subscription.updated",
  "appDid": "did:plc:app",
  "createdAt": "2026-06-05T16:00:00.000Z",
  "data": {
    "subscriptionId": "sub_01HZYATM0003",
    "status": "active",
    "amount": 1000,
    "previousAmount": 500,
    "currency": "usd",
    "cadence": "month",
    "payerDid": "did:plc:buyer",
    "recipientDid": "did:plc:creator",
    "appSubscriptionRef": "support:creator.example"
  }
}

Product archived

json
{
  "id": "evt_product_archived_01",
  "deliveryId": "del_product_archived_01",
  "environment": "test",
  "type": "product.archived",
  "appDid": "did:plc:app",
  "createdAt": "2026-06-05T17:00:00.000Z",
  "data": {
    "productUri": "at://did:plc:creator/money.atmosphere.product/abc",
    "productCid": "bafy...",
    "archivedAt": "2026-06-05T17:00:00.000Z",
    "appProductRef": "supper:shop:123"
  }
}

Tickets issued

json
{
  "id": "evt_tickets_issued_01",
  "deliveryId": "del_tickets_issued_01",
  "environment": "test",
  "type": "tickets.issued",
  "appDid": "did:plc:app",
  "createdAt": "2026-06-05T18:00:00.000Z",
  "data": {
    "eventUri": "at://did:plc:organizer/community.lexicon.calendar.event/abc",
    "holdId": "hold_01HZYATM0004",
    "paymentId": "pay_01HZYATM0005",
    "issuedCount": 2,
    "buyerDid": "did:plc:buyer",
    "appOrderId": "ticket_order_123",
    "tickets": [
      {
        "ticketId": "ticket_01HZYATM0006",
        "tierId": "tier_general",
        "status": "issued"
      }
    ]
  }
}

Ticket checked in

json
{
  "id": "evt_ticket_checked_in_01",
  "deliveryId": "del_ticket_checked_in_01",
  "environment": "test",
  "type": "ticket.checked_in",
  "appDid": "did:plc:app",
  "createdAt": "2026-06-05T19:00:00.000Z",
  "data": {
    "ticketId": "ticket_01HZYATM0006",
    "eventUri": "at://did:plc:organizer/community.lexicon.calendar.event/abc",
    "checkInListId": "list_main_gate",
    "checkedInAt": "2026-06-05T19:00:00.000Z",
    "scannerDid": "did:plc:scanner",
    "repeat": false
  }
}
Event payload examples - Atmosphere Money Docs