{"lexicon":1,"id":"money.atmosphere.event.receiveEvent","defs":{"main":{"type":"procedure","description":"Optional app-implemented XRPC receiver for ATM outbound events. ATM calls this with service-auth; signed HTTP webhooks remain the universal fallback.","input":{"encoding":"application/json","schema":{"type":"object","required":["id","type","createdAt","apiVersion","data"],"properties":{"id":{"type":"string","maxLength":128,"description":"ATM delivery id. Receivers should use this for idempotency."},"type":{"type":"ref","ref":"money.atmosphere.event.defs#eventType","description":"ATM event type, such as payment.completed or tickets.issued."},"createdAt":{"type":"string","format":"datetime","description":"When ATM built the event envelope."},"apiVersion":{"type":"string","maxLength":32,"description":"ATM outbound event envelope version."},"environment":{"type":"string","knownValues":["test","live"],"maxLength":16,"description":"ATM app environment for this delivery."},"data":{"type":"union","refs":["money.atmosphere.event.defs#appWebhookTest","money.atmosphere.event.defs#paymentCompleted","money.atmosphere.event.defs#paymentFailed","money.atmosphere.event.defs#paymentRefunded","money.atmosphere.event.defs#paymentRefundUpdated","money.atmosphere.event.defs#paymentDisputed","money.atmosphere.event.defs#paymentDisputeClosed","money.atmosphere.event.defs#orderUpdated","money.atmosphere.event.defs#subscriptionInvoicePaid","money.atmosphere.event.defs#subscriptionChangeUpdated","money.atmosphere.event.defs#subscriptionUpdated","money.atmosphere.event.defs#subscriptionCanceled","money.atmosphere.event.defs#subscriptionPaymentFailed","money.atmosphere.event.defs#subscriptionRecovered","money.atmosphere.event.defs#pledgeCreated","money.atmosphere.event.defs#pledgeCanceled","money.atmosphere.event.defs#pledgeConverted","money.atmosphere.event.defs#pledgeConversionFailed","money.atmosphere.event.defs#payerRecordRequested","money.atmosphere.event.defs#payerClaimed","money.atmosphere.event.defs#creatorProofRequested","money.atmosphere.event.defs#attestationUpdated","money.atmosphere.event.defs#productUpdated","money.atmosphere.event.defs#productArchived","money.atmosphere.event.defs#productDeleted","money.atmosphere.event.defs#ticketHoldCreated","money.atmosphere.event.defs#ticketHoldExpired","money.atmosphere.event.defs#ticketsIssued","money.atmosphere.event.defs#ticketEventCanceled","money.atmosphere.event.defs#ticketVoided","money.atmosphere.event.defs#ticketReleased","money.atmosphere.event.defs#ticketRefunded","money.atmosphere.event.defs#ticketPartialRefundReview","money.atmosphere.event.defs#ticketFailedRefundReview","money.atmosphere.event.defs#ticketCheckedIn","money.atmosphere.event.defs#ticketFormSubmitted","money.atmosphere.event.defs#ticketWaitlistJoined","money.atmosphere.event.defs#ticketWaitlistOffered","money.atmosphere.event.defs#ticketCollaborationInvited","money.atmosphere.event.defs#ticketCollaborationAccepted","money.atmosphere.event.defs#ticketCollaborationRevoked","money.atmosphere.event.defs#customerSegmentMessageRequested","money.atmosphere.event.defs#recipientAuthorizationUpdated"],"description":"Event-specific payload. See the named payload definitions in money.atmosphere.event.defs; ATM validates event payloads by type before delivery. This published schema is the protocol contract, not an exhaustive list of webhook fields: over the signed HTTP webhook ATM additionally delivers private fulfillment fields (such as customer contact and shipping) that apps need to fulfill orders but that are intentionally NOT part of this published protocol schema and are never written to public PDS records."}}}},"output":{"encoding":"application/json","schema":{"type":"object","properties":{"accepted":{"type":"boolean","description":"Optional acknowledgement. Any 2xx response means the receiver accepted the event."}}}},"errors":[{"name":"Rejected","description":"The receiver rejected the event. ATM may retry non-2xx HTTP responses."}]}}}