Generated reference
A contract index generated from the local ATM, attested.network, and Tickets 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.
Source
Generated from the local lexicon set in app/lexicons. It is the mechanical index for NSIDs, route shape, auth expectations, lifecycle labels, and record-versus-XRPC boundaries.
cd app
npm run docs:generate-reference
npm run docs:checkATM money namespace
| NSID | Kind | Route | Auth | Status | Summary | Links |
|---|---|---|---|---|---|---|
| money.atmosphere.actor.getPayoutStatus | query | /xrpc/money.atmosphere.actor.getPayoutStatus | Service-auth | beta draft | Return whether an actor can receive payments through ATM. | |
| money.atmosphere.actor.getProfile | query | /xrpc/money.atmosphere.actor.getProfile | Public AppView read | beta draft | Return the indexed money.atmosphere.actor.profile record for an actor DID or handle, or null if none has been indexed. | |
| money.atmosphere.actor.profile | record | PDS | PDS record | beta draft | Minimal payment-facing profile for an Atmosphere account using ATM. | |
| money.atmosphere.agreement.acceptance | record | Not publicly served | No public write path | prepublication candidate; unserved and unpublished | The counterparty's exact public-beta selection under one public offer version, authored in the acceptor's repo. The acceptance binds the exact offer URI and CID; selected economics and scope cannot broaden it. Both root and child terms and their normalized commercial settlement amounts are public under deliberately disclosed beta authoring/acceptance actions. The pair is the complete bilateral agreement. No private wrapper, extra agreement fingerprint, or optional default-off settlement disclosure election is part of the beta contract. | |
| money.atmosphere.agreement.aggregatePolicy | record | Not publicly served | No public write path | prepublication candidate; unserved and unpublished | DRAFT unpublished candidate. A creator-authored standing ceiling on the creator's total commercial burden: across every root agreement that applies to one settled occurrence in the named environment, the sum of exact effective lower-only rates must stay at or below aggregateMaxFeeShareBps, and a reviewed compiler fails closed rather than exceed it. Authored only by the creator whose proceeds it protects; never raises any individual agreement's ceiling. Every initial, parallel, or successor CID becomes authority no earlier than its own durable broker admission, so effectiveFrom and supersession cannot rewrite an already admitted occurrence. A successor must bind the exact current tip from the same creator and environment; a foreign, cross-environment, ancestor, or otherwise non-tip predecessor is invalid. Deletion or replay never reopens a superseded tip, and branches or overlapping live tips fail closed as ambiguity. | |
| money.atmosphere.agreement.beneficiaryRefusal | record | Not publicly served | No public write path | prepublication candidate; unserved and unpublished | DRAFT unpublished candidate. A creator-authored refusal of one named child beneficiary under the creator's own offerings. The record refuses a beneficiary DID, never a child agreement version. Money-neutral by construction: the refused share stays with the parent agreement and the occurrence allocation flattens to the root, so refusal never redirects funds to the creator and is an association control, never a discount lever. A reviewed compiler treats a refused beneficiary's child agreements as not applying to the creator's occurrences, and an ambiguous or unresolvable refusal state at the occurrence anchor means the child does not apply. Deliberately DID-scoped rather than child-version-scoped: binding an exact child version would invite supersede-and-reissue evasion. Authority begins no earlier than durable broker admission of this exact CID and is prospective only; already-attributed occurrences are never restated. Refusal does not delist: public catalog records stay public and reachable, and refusal governs who may earn, never who may link. Deletion never restores a refused beneficiary; only an explicit withdrawn successor reopens the lineage. | |
| money.atmosphere.agreement.defs | defs | Not publicly served | No public write path | prepublication candidate; unserved and unpublished | No description in lexicon yet. | |
| money.atmosphere.agreement.offer | record | Not publicly served | No public write path | prepublication candidate; unserved and unpublished | Posted maximum commercial terms authored by the offeror. The offer permits a counterparty to accept an equal or lower rate and a subset of payment types; it authorizes no allocation alone. During public beta both root and child records are public after deliberate publication disclosure. A child is funded from its exact parent agreement, not classified by privacy. Ordinary record CIDs and authenticated authorship bind exact versions. Processor identifiers and raw evidence never belong in this record. ATM executes the bilateral agreement and retains only its child tariff and authorized settlement costs. | |
| money.atmosphere.agreement.revocation | record | Not publicly served | No public write path | prepublication candidate; unserved and unpublished | DRAFT unpublished candidate. The repo owner makes an append-only terminal decision over one exact agreement record that same DID authored. subject.uri must use a canonical did: authority equal to the revocation repo DID, and its collection must be exactly money.atmosphere.agreement.offer or money.atmosphere.agreement.acceptance; subject.cid and the exact subject body must be independently verified. A revocation received before its subject is retained for that exact later join. Every valid revocation remains terminal: a later update, deletion, takedown, replay, or backfill order never reopens the subject. Multiple valid revocations combine monotonically; the effective cutoff is the earliest admission-clamped cutoff. An occurrence admitted before that cutoff and its frozen allocation are never rewritten or canceled. | |
| money.atmosphere.agreement.rootEnablement | record | Not publicly served | No public write path | prepublication candidate; unserved and unpublished | DRAFT unpublished candidate. A creator-authored enabled or terminally revoked decision for one exact bilateral acceptance and one exact offering, so a multi-root occurrence can prove which roots the proceeds owner enabled where. The author must be the recipient-proceeds funder and creator of the offering; the bound acceptance may be authored by that creator or by the beneficiary, depending on which party authored the offer. A mismatched funder, offering, offer/acceptance lineage, or counterparty is void. The optional payment-type selection may only narrow an enabled decision; a revoked decision carrying paymentTypes or expiresAt is invalid. Every successor must bind the exact prior tip and preserve the same creator, acceptance, and offering. A revoked successor is admission-clamped and permanently terminal for that exact root lineage, and survives deletion, expiry claims, or replay; re-enablement requires a new bilateral acceptance and a new root-enablement URI/lineage, not a successor of the old lineage. | |
| money.atmosphere.agreement.settlement | record | Not publicly served | No public write path | prepublication candidate; unserved and unpublished | DRAFT unpublished public-beta commercial allocation evidence, never payment, entitlement, or disbursement authority. Every root and child leg references an exact public acceptance and publishes its normalized commercial amounts. Ordinary record CIDs bind bytes; authenticated ATM repo evidence identifies the author. The private ledger remains canonical. Raw processor objects/identifiers, card/bank details, credentials, KYC and operational balances never appear. Records are immutable: allocation is followed by predecessor-bound signed deltas for refunds, disputes, reinstatements and commercial cost returns. The record key is the proof TID K for its own occurrence, K.YYYYMMDDTHHMMSSZ for a later cycle, with .n for each never-reused positive compensation index. Reject fractional or invalid cycle anchors. Every record keeps the identical leg set in identical order. History verification is as of a supplied authenticated tip, never proof that no newer event exists. Arithmetic consistency does not independently authenticate processor facts or prove money moved; a recurring proof is relationship context only for later occurrences. Public-beta admission records deliberate publication authority through existing authoring/payment actions; older private authorities are never silently projected. Private placement requires a later reviewed Spaces profile. Payment-v1 receipt/proof/lifecycle bytes and semantics are unchanged. | |
| money.atmosphere.analytics.getPaymentVolumeTrends | query | /xrpc/money.atmosphere.analytics.getPaymentVolumeTrends | Service-auth | beta draft | Aggregate payment-volume trends for the calling app, scoped to payments it originated. | |
| money.atmosphere.analytics.getRefundAnalysis | query | /xrpc/money.atmosphere.analytics.getRefundAnalysis | Service-auth | beta draft | Refund analysis for the calling app, scoped to its own originated payments. | |
| money.atmosphere.analytics.getSubscriptionMetrics | query | /xrpc/money.atmosphere.analytics.getSubscriptionMetrics | Service-auth | beta draft | Subscription MRR / growth / churn for the calling app, per currency, scoped to its own originated subscriptions. | |
| money.atmosphere.app.assertRecipient | procedure | /xrpc/money.atmosphere.app.assertRecipient | Service-auth | beta draft | Service-auth capability NSID used by an app to assert that a signed-in recipient (creator) DID was present when the app requested recipient approval. | |
| money.atmosphere.app.auditFeeDistributions | query | /xrpc/money.atmosphere.app.auditFeeDistributions | Service-auth | beta draft | Audit ATM's contractual revenue-share distributions payable to the calling app and calculated from ATM's own application-fee base (or an equivalent platform-fee amount supplied by ATM from gross proceeds on an enabled route without a separate application fee). | |
| money.atmosphere.app.clearRecipientFeeShare | procedure | /xrpc/money.atmosphere.app.clearRecipientFeeShare | Service-auth | beta draft | Remove a per-recipient fee override; fee plans prepared afterward return to the app's configured fee. | |
| money.atmosphere.app.defs | defs | /xrpc/money.atmosphere.app.defs | App service-auth | beta draft | No description in lexicon yet. | |
| money.atmosphere.app.getConfig | query | /xrpc/money.atmosphere.app.getConfig | Service-auth | beta draft | Read the calling app's ATM app configuration for one environment. | |
| money.atmosphere.app.getRecipientApproval | query | /xrpc/money.atmosphere.app.getRecipientApproval | Service-auth | beta draft | Read the calling app's current creator approval and coarse payment setup state for one exact environment. | |
| money.atmosphere.app.listRecipientFeeShares | query | /xrpc/money.atmosphere.app.listRecipientFeeShares | Service-auth | beta draft | List this app's per-recipient fee overrides. | |
| money.atmosphere.app.requestRecipientApproval | procedure | /xrpc/money.atmosphere.app.requestRecipientApproval | Service-auth | beta draft | Request creator approval for an app to accept ATM payments for that recipient. | |
| money.atmosphere.app.setRecipientFeeShare | procedure | /xrpc/money.atmosphere.app.setRecipientFeeShare | Service-auth | beta draft | Set a LOWER per-recipient application-fee rate that ATM charges for this app (e.g. | |
| money.atmosphere.app.updateConfig | procedure | /xrpc/money.atmosphere.app.updateConfig | Service-auth | beta draft | Update safe app-level ATM configuration for one environment. | |
| money.atmosphere.app.upsertFeeTier | procedure | /xrpc/money.atmosphere.app.upsertFeeTier | Service-auth | beta draft | Atomically create or replace one automatic app-fee tier by subscriptionGroupKey while preserving every unrelated tier. | |
| money.atmosphere.authCatalog | permission-set | Not an XRPC route | User-granted OAuth permission set | beta draft | Permission set for managing ATM-owned catalog records: products, prices, discounts, and discount codes. | |
| money.atmosphere.authProfile | permission-set | Not an XRPC route | User-granted OAuth permission set | beta draft | Permission set for creating and updating the ATM-owned payment profile record. | |
| money.atmosphere.billing.requestKofiMigrationBatch | procedure | /xrpc/money.atmosphere.billing.requestKofiMigrationBatch | Service-auth | beta draft | Create a private ATM billing migration review batch from a Ko-fi membership export. | |
| money.atmosphere.billing.requestMigrationBatch | procedure | /xrpc/money.atmosphere.billing.requestMigrationBatch | Service-auth | beta draft | Create a private ATM billing migration review batch from NORMALIZED subscriber rows an app produced from its own export (Ko-fi, Substack, Patreon, …). | |
| money.atmosphere.calendar.getEvent | query | /xrpc/money.atmosphere.calendar.getEvent | Public AppView read | beta draft | Return one indexed community.lexicon.calendar.event record by exact AT-URI, or null when it is not currently indexed. | |
| money.atmosphere.calendar.listRsvps | query | /xrpc/money.atmosphere.calendar.listRsvps | Public AppView read | beta draft | List the latest public community.lexicon.calendar.rsvp state per attendee for an exact calendar event. | |
| money.atmosphere.catalog.configureInventory | procedure | /xrpc/money.atmosphere.catalog.configureInventory | App service-auth | beta draft | Configure ATM's shared inventory authority for an exact current creator-owned root product and optional exact variant. | |
| money.atmosphere.catalog.createProduct | procedure | /xrpc/money.atmosphere.catalog.createProduct | App service-auth | beta draft | Create an app-owned canonical ATM product in the calling app DID repo. | |
| money.atmosphere.catalog.defs | defs | /xrpc/money.atmosphere.catalog.defs | App service-auth | beta draft | No description in lexicon yet. | |
| money.atmosphere.catalog.getInventory | query | /xrpc/money.atmosphere.catalog.getInventory | Public or app-scoped read | beta draft | Read ATM's authoritative inventory projection for an exact active linked creator-owned root physical or digital product and optional exact variant. | |
| money.atmosphere.catalog.getProduct | query | /xrpc/money.atmosphere.catalog.getProduct | Public or app-scoped read | beta draft | Return one indexed ATM catalog product by AT-URI, or null if the AppView has not indexed it. | |
| money.atmosphere.catalog.listDiscountCodes | query | /xrpc/money.atmosphere.catalog.listDiscountCodes | Public or app-scoped read | beta draft | List indexed public money.atmosphere.discountCode offers authored by a set of creators (read-only catalog projection). | |
| money.atmosphere.catalog.listPrices | query | /xrpc/money.atmosphere.catalog.listPrices | Public or app-scoped read | beta draft | List indexed ATM Prices authored in an offer's repo whose offerUri exactly names that Product, membership tier, or ticket type. | |
| money.atmosphere.catalog.listProducts | query | /xrpc/money.atmosphere.catalog.listProducts | Public or app-scoped read | beta draft | List indexed ATM catalog products for a creator, with optional default price and sales-count projections. | |
| money.atmosphere.catalog.registerAppLink | procedure | /xrpc/money.atmosphere.catalog.registerAppLink | Service-auth | beta draft | Private app callback that links a creator-owned ATM product record to the app surface responsible for selling or fulfillment. | |
| money.atmosphere.catalog.updateProduct | procedure | /xrpc/money.atmosphere.catalog.updateProduct | App service-auth | beta draft | Update an app-owned canonical ATM product in the calling app DID repo. | |
| money.atmosphere.discount | record | PDS | PDS record | beta draft | Public ATM discount terms that can be mirrored to processor coupon objects at checkout. | |
| money.atmosphere.discountCode | record | PDS | PDS record | beta draft | Public customer-facing redemption code for a money.atmosphere.discount. | |
| money.atmosphere.event.defs | defs | /xrpc/money.atmosphere.event.defs | App service-auth | beta draft | No description in lexicon yet. | |
| money.atmosphere.event.listEvents | query | /xrpc/money.atmosphere.event.listEvents | Service-auth | beta draft | List the calling app's retained events oldest first in ascending seq order for forward pull-based catch-up. | |
| money.atmosphere.event.receiveEvent | procedure | /xrpc/money.atmosphere.event.receiveEvent | Service-auth | beta draft | Optional app-implemented XRPC receiver for ATM outbound events. | |
| money.atmosphere.membership.assertMember | procedure | /xrpc/money.atmosphere.membership.assertMember | Service-auth | beta draft | Service-auth capability NSID used by a member to assert their own presence for a cross-app membership access check. | |
| money.atmosphere.membership.createProgram | procedure | /xrpc/money.atmosphere.membership.createProgram | App service-auth | beta draft | Create a portable money.atmosphere.membership.program record in the creator's repo. | |
| money.atmosphere.membership.createTier | procedure | /xrpc/money.atmosphere.membership.createTier | App service-auth | beta draft | Create a portable money.atmosphere.membership.tier record under an existing program in the creator's repo. | |
| money.atmosphere.membership.getAccess | procedure | /xrpc/money.atmosphere.membership.getAccess | Public or app-scoped read | beta draft | Reserved cross-app membership access check. | |
| money.atmosphere.membership.listGrants | query | /xrpc/money.atmosphere.membership.listGrants | Service-auth | beta draft | List membership grants the CALLING app registered with money.atmosphere.membership.registerGrant, for reconciliation and revocation (for example: which imported members of a migration batch received grants). | |
| money.atmosphere.membership.program | record | PDS | PDS record | beta draft | Public ATM creator membership program. | |
| money.atmosphere.membership.registerGrant | procedure | /xrpc/money.atmosphere.membership.registerGrant | Service-auth | beta draft | Register a non-payment membership grant (comp, migration import, or free-tier claim) so cross-app access checks honor it: money.atmosphere.membership.getAccess answers from the union of attested subscription truth and registered grants. | |
| money.atmosphere.membership.revokeGrant | procedure | /xrpc/money.atmosphere.membership.revokeGrant | Service-auth | beta draft | Revoke a membership grant previously registered with money.atmosphere.membership.registerGrant. | |
| money.atmosphere.membership.tier | record | PDS | PDS record | beta draft | Public ATM membership tier for a creator membership program. | |
| money.atmosphere.membership.updateProgram | procedure | /xrpc/money.atmosphere.membership.updateProgram | App service-auth | beta draft | Update a money.atmosphere.membership.program record ATM authored in the creator's repo (the record CID rotates). | |
| money.atmosphere.membership.updateTier | procedure | /xrpc/money.atmosphere.membership.updateTier | App service-auth | beta draft | Update a money.atmosphere.membership.tier record ATM authored in the creator's repo (the record CID rotates). | |
| money.atmosphere.order.defs | defs | /xrpc/money.atmosphere.order.defs | App service-auth | beta draft | No description in lexicon yet. | |
| money.atmosphere.order.getOrder | query | /xrpc/money.atmosphere.order.getOrder | Service-auth | beta draft | Read one canonical routed commerce order. | |
| money.atmosphere.order.listOrders | query | /xrpc/money.atmosphere.order.listOrders | Service-auth | beta draft | List the calling app's canonical routed commerce orders, newest movement first. | |
| money.atmosphere.order.updateFulfillment | procedure | /xrpc/money.atmosphere.order.updateFulfillment | Service-auth | beta draft | Apply one app-authored fulfillment transition to a routed commerce order. | |
| money.atmosphere.payment.assertPayer | procedure | /xrpc/money.atmosphere.payment.assertPayer | Service-auth | beta draft | Service-auth capability NSID used by an app to assert that a signed-in payer DID was present for an ATM checkout. | |
| money.atmosphere.payment.authPublishReceipt | permission-set | Not an XRPC route | User-granted OAuth permission set | experimental; served; unpublished; no production behavior | Allow this app to create public payment receipt records in your account for payments you complete. | |
| money.atmosphere.payment.cancelPledge | procedure | /xrpc/money.atmosphere.payment.cancelPledge | Service-auth | beta draft | Cancel a pledge before it converts. | |
| money.atmosphere.payment.cancelSubscription | procedure | /xrpc/money.atmosphere.payment.cancelSubscription | Service-auth | beta draft | Cancel a subscription on behalf of the authenticated payer. | |
| money.atmosphere.payment.convertPledges | procedure | /xrpc/money.atmosphere.payment.convertPledges | Service-auth | beta draft | Convert this app's eligible active pledges for a recipient into live subscriptions now (e.g. | |
| money.atmosphere.payment.createManagementSession | procedure | /xrpc/money.atmosphere.payment.createManagementSession | Service-auth | beta draft | Create a short-lived, single-use subscription management URL for a payer without an ATM sign-in. | |
| money.atmosphere.payment.createPledge | procedure | /xrpc/money.atmosphere.payment.createPledge | Service-auth | beta draft | Create a pledge: the payer saves a card for a recipient who has not finished ATM payment setup, and ATM converts it into a real subscription when the recipient becomes payable and has approved this app. | |
| money.atmosphere.payment.createSubscriptionChangeSession | procedure | /xrpc/money.atmosphere.payment.createSubscriptionChangeSession | App service-auth | beta draft | Create a short-lived ATM hosted URL for a previously previewed membership tier change. | |
| money.atmosphere.payment.declineRecord | procedure | /xrpc/money.atmosphere.payment.declineRecord | Service-auth | beta draft | Signal that the originating app cannot write a delegated record. | |
| money.atmosphere.payment.defs | defs | /xrpc/money.atmosphere.payment.defs | App service-auth | beta draft | No description in lexicon yet. | |
| money.atmosphere.payment.diagnoseSubscriptionFailure | query | /xrpc/money.atmosphere.payment.diagnoseSubscriptionFailure | Service-auth | beta draft | Diagnose why a subscription renewal failed, for the originating app. | |
| money.atmosphere.payment.getSubscriptionChange | query | /xrpc/money.atmosphere.payment.getSubscriptionChange | Service-auth | beta draft | Return one known membership tier-change status to the registered app that requested that change. | |
| money.atmosphere.payment.lifecycle | record | PDS | PDS record | experimental; served; unpublished; no production behavior | EXPERIMENTAL DRAFT — not published. | |
| money.atmosphere.payment.listPayerProofs | query | /xrpc/money.atmosphere.payment.listPayerProofs | Public or app-scoped read | beta draft | List the public attested.network payment records anchored to a payer DID (the payer's own already-public payment history), filtered to records with an active broker proof. | |
| money.atmosphere.payment.listPendingRecords | query | /xrpc/money.atmosphere.payment.listPendingRecords | Service-auth | beta draft | List pending payer/creator records the originating app may upgrade. | |
| money.atmosphere.payment.listPledges | query | /xrpc/money.atmosphere.payment.listPledges | Service-auth | beta draft | List pledges originated by the authenticated app. | |
| money.atmosphere.payment.listSubscriptions | query | /xrpc/money.atmosphere.payment.listSubscriptions | Service-auth | beta draft | List active subscriptions for the authenticated payer. | |
| money.atmosphere.payment.previewSubscriptionChange | procedure | /xrpc/money.atmosphere.payment.previewSubscriptionChange | App service-auth | beta draft | Create a short-lived ATM-authored membership tier-change quote without changing billing or access. | |
| money.atmosphere.payment.proof | record | PDS | PDS record | experimental; served; unpublished; no production behavior | EXPERIMENTAL DRAFT — not published. | |
| money.atmosphere.payment.receipt | record | PDS | PDS record | experimental; served; unpublished; no production behavior | EXPERIMENTAL DRAFT — not published; record name decided in NAMING_RFC.md. | |
| money.atmosphere.payment.recurringReceipt | record | PDS | PDS record | experimental; served; unpublished; no production behavior | EXPERIMENTAL DRAFT — not published; record name decided in NAMING_RFC.md. | |
| money.atmosphere.payment.refundPayment | procedure | /xrpc/money.atmosphere.payment.refundPayment | Service-auth | beta draft | Refund a payment the calling app originated. | |
| money.atmosphere.payment.registerCreatorProof | procedure | /xrpc/money.atmosphere.payment.registerCreatorProof | Service-auth | beta draft | Register a creator proof URI written by the originating app on the creator's PDS via OAuth. | |
| money.atmosphere.payment.registerPayerRecord | procedure | /xrpc/money.atmosphere.payment.registerPayerRecord | Service-auth | beta draft | Register a payer record URI written by the originating app on the payer's PDS via OAuth. | |
| money.atmosphere.payment.verifyReceipt | query | Not implemented | No enabled auth path | experimental; served; unpublished; no production behavior | EXPERIMENTAL DRAFT — not published. | |
| money.atmosphere.payment.verifyRecord | query | /xrpc/money.atmosphere.payment.verifyRecord | Public AppView read | beta draft | Verify one exact public attested payment strongRef against ATM's current active broker proof. | |
| money.atmosphere.price | record | PDS | PDS record | beta draft | Public ATM price record describing amount, currency, and billing cadence for an offer (product, membership tier, or ticket type). | |
| money.atmosphere.product | record | PDS | PDS record | beta draft | Public ATM catalog product describing what is sold; prices live in money.atmosphere.price. | |
| money.atmosphere.segments.listMembers | query | /xrpc/money.atmosphere.segments.listMembers | Service-auth | beta draft | List members of a private customer cohort the calling app's payments computed. | |
| money.atmosphere.segments.requestMessage | procedure | /xrpc/money.atmosphere.segments.requestMessage | Service-auth | beta draft | Request a marketing message to a computed customer cohort. | |
| money.atmosphere.temp.membership.defs | defs | /xrpc/money.atmosphere.temp.membership.defs | App service-auth | beta draft | No description in lexicon yet. | |
| money.atmosphere.temp.membership.registerSpace | procedure | /xrpc/money.atmosphere.temp.membership.registerSpace | Creator service-auth | experimental invite-only beta | Register the private ATM entitlement binding for a creator-owned membership space in ATM's invite-only experimental beta. Requires ordinary AT Protocol service auth issued by the creator/space-authority DID to ATM's advertised service. This does not authorize an app to sell, read, or administer the space; appAccess remains creator-configured PDS policy. Revocation is terminal for a space URI; use a new versioned space key after revocation. | |
| money.atmosphere.temp.membership.revokeSpace | procedure | /xrpc/money.atmosphere.temp.membership.revokeSpace | Creator service-auth | experimental invite-only beta | Emergency-revoke a creator-owned membership-space binding. Requires only the exact space URI and ordinary creator service auth, so revocation does not depend on public program/tier record availability. A creator may revoke an existing binding after cohort removal; creating a terminal tombstone before first registration requires current invite-only beta cohort membership. |
ATM money fields
money.atmosphere.actor.getPayoutStatus18 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | actor | string | yes | no | format:at-identifier | No description in lexicon yet. |
| output | status | string<active | action-required | pending | not-ready | temporarily-unavailable> | yes | no | maxLength:64 | Synthesized payout readiness. |
| output | chargesEnabled | boolean | yes | no | none | No description in lexicon yet. |
| output | payoutsEnabled | boolean | yes | no | none | No description in lexicon yet. |
| output | detailsSubmitted | boolean | yes | no | none | No description in lexicon yet. |
| output | requirementsDue | array<string> | no | no | maxLength:100 | No description in lexicon yet. |
| output | currentlyDue | integer | no | no | none | No description in lexicon yet. |
| output | pastDue | integer | no | no | none | No description in lexicon yet. |
| output | eventuallyDue | integer | no | no | none | No description in lexicon yet. |
| output | disabledReason | string | no | no | maxLength:128 | No description in lexicon yet. |
| output | currentDeadline | string | no | no | format:datetime | No description in lexicon yet. |
| output | errors | array<string> | no | no | maxLength:100 | No description in lexicon yet. |
| output | message | string | no | no | maxLength:512 | No description in lexicon yet. |
| output | accountLinked | boolean | no | no | none | No description in lexicon yet. |
| output | supportRequired | boolean | no | no | none | No description in lexicon yet. |
| output | hasHistory | boolean | no | no | none | No description in lexicon yet. |
| output | internalOwner | boolean | no | no | none | No description in lexicon yet. |
| output | sameLegalEntity | boolean | no | no | none | No description in lexicon yet. |
money.atmosphere.actor.getProfile5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | actor | string | yes | no | format:at-identifier | No description in lexicon yet. |
| output | profile | ref:#profile | yes | yes | none | Either null or { uri, cid, value } where value is money.atmosphere.actor.profile. |
| def:profile | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:profile | cid | string | yes | no | format:cid | No description in lexicon yet. |
| def:profile | value | ref:money.atmosphere.actor.profile | yes | no | none | No description in lexicon yet. |
money.atmosphere.actor.profile5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | displayName | string | no | no | maxLength:640, maxGraphemes:64 | Payment-facing display name. |
| record | description | string | no | no | maxLength:2560, maxGraphemes:256 | Short payment-facing profile text. |
| record | avatar | blob | no | no | none | Payment-facing avatar image. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| record | updatedAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.agreement.acceptance14 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | offer | ref:com.atproto.repo.strongRef | yes | no | none | The exact public offer version accepted, bound by its AT-URI and record CID. The offeror's authenticated repository authorship is checked separately from content integrity. |
| record | offeror | string | yes | no | format:did | The DID whose repo owns the accepted offer. |
| record | selection | ref:#selection | yes | no | none | Exact rate and payment-type subset selected under the referenced offer. |
| record | policy | ref:#policy | yes | no | none | Acceptor-authored delegation and publication attenuation. |
| record | effectiveFrom | string | no | no | format:datetime | Optional inclusive instant from which this acceptance may authorize a new occurrence. |
| record | expiresAt | string | no | no | format:datetime | Optional exclusive expiry instant after which this acceptance cannot authorize a new occurrence. |
| record | supersedes | ref:com.atproto.repo.strongRef | no | no | none | The exact published prior acceptance this one replaces, bound by AT-URI and CID. |
| record | createdAt | string | yes | no | format:datetime | Client-declared instant when the acceptor authored this immutable acceptance version. |
| def:selection | feeShareBps | integer | yes | no | minimum:0, maximum:10000 | Exact rate selected by the acceptor. It must not exceed the offer's maxFeeShareBps. On the launch profile it is the applied rate: a lower rate for one relationship is a superseding acceptance (or a new addressed offer plus acceptance), never a private override, so the public record always describes the money that moved. |
| def:selection | paymentTypes | array<ref:money.atmosphere.agreement.defs#paymentType> | yes | no | minLength:1, maxLength:16 | Explicit non-empty subset of the offer's payment types the acceptor permits. New or omitted types are not authorized. |
| def:selection | maxSettlementCostBps | integer | no | no | minimum:0, maximum:10000 | Explicit acceptance of the root offer's processing-and-settlement cap, in basis points of the collected App Fee. Must be present on a root acceptance and must not exceed the offer's terms.maxSettlementCostBps; absent on a child acceptance. Like feeShareBps it is required even when it equals the offered value, so the recipient's consent to the charge is on the record. |
| def:selection | networkTariffBps | integer | no | no | minimum:0, maximum:10000 | Explicit acknowledgement, on a child acceptance only, of ATM's network tariff. The child acceptance acknowledges the nominal tariff bps of the schedule assigned at its authenticated admission; client-declared createdAt is not the schedule-selection clock. ATM freezes that schedule id and acknowledged bps with the admitted acceptance. A mismatch at admission fails closed. Every later occurrence under that acceptance uses its frozen schedule, never a mutable current schedule; changing the tariff requires a newly authored acceptance. The nominal acknowledgement is 1,000 bps for atm-network-tariff-v1, including for a same-principal beneficiary; the effective tariff is separately frozen as zero for a proven same-principal leg. The tariff is retained inside the child allocation and is never added to creator burden. Absent on a root acceptance: no tariff ever applies to a root. |
| def:policy | delegationDepth | integer | yes | no | minimum:0, maximum:8 | How many child levels the beneficiary may carve from its pool. This may only attenuate an offer's childDelegation.maxDepth; it cannot grant children under #noDelegation or exceed the offered depth. 0 means none. |
| def:policy | publication | ref:money.atmosphere.agreement.defs#visibility | yes | no | none | The acceptor's public-beta publication policy for both root and child terms and normalized commercial settlement evidence. It cannot broaden the offer. The beta requires public through the existing deliberate acceptance action; older privately authenticated approvals remain projection-ineligible. |
money.atmosphere.agreement.aggregatePolicy10 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | environment | ref:money.atmosphere.agreement.defs#environment | yes | no | none | The ATM app environment this standing policy governs. Environment remains an immutable agreement boundary. |
| record | scope | union<money.atmosphere.agreement.defs#allOfferingsScope | money.atmosphere.agreement.defs#selectedOfferingsScope> | yes | no | none | Explicit offering boundary for this aggregate ceiling. The candidate profile names all-offerings and an exact selected-offerings set; a future reviewed compiler must allowlist executable variants and fail closed on an unknown variant. |
| record | aggregateMaxFeeShareBps | integer | yes | no | minimum:0, maximum:10000 | Ceiling, in basis points of the occurrence's commissionable basis, on the sum of every applicable root's exact effective lower-only rate after validating effective <= required <= selected <= offered maximum. 100 equals 1%. |
| record | childDelegationDepth | integer | yes | no | minimum:0, maximum:8 | Creator default for the maximum child-delegation depth a root beneficiary may exercise. 0 means none. An individual acceptance may narrow but never exceed it. |
| record | compilerPolicyVersion | string | yes | no | minLength:1, maxLength:64 | Version of the deterministic root-selection, ordering, conservation, and rounding policy this ceiling authorizes. A future reviewed compiler must explicitly allowlist the exact value and fail closed on an unknown version. |
| record | visibility | ref:money.atmosphere.agreement.defs#visibility | no | no | none | Publication policy for this standing policy itself. Absent means parties. |
| record | effectiveFrom | string | no | no | format:datetime | Requested inclusive applicability start. The resolver clamps it to no earlier than durable broker admission of this exact policy CID; omission likewise cannot make the record authoritative before admission. |
| record | expiresAt | string | no | no | format:datetime | No description in lexicon yet. |
| record | supersedes | ref:com.atproto.repo.strongRef | no | no | none | The exact published current policy tip this one replaces. It must resolve to the same creator repo and environment. A foreign, cross-environment, ancestor, or otherwise non-tip predecessor is invalid; a superseded tip never reopens after deletion or replay, and competing branches fail closed. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.agreement.beneficiaryRefusal8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | environment | ref:money.atmosphere.agreement.defs#environment | yes | no | none | The ATM app environment this refusal governs. Environment remains an immutable agreement boundary. |
| record | beneficiary | string | yes | no | format:did | The refused child-beneficiary DID. Never the creator, and never a root counterparty: a root relationship ends through its own acceptance or enablement lifecycle, not through refusal. A refused party re-minting a new DID defeats DID scoping only with a complicit parent; the creator's escalation for that is delegation depth zero or revoking the parent's enablement. |
| record | scope | union<money.atmosphere.agreement.defs#allOfferingsScope | money.atmosphere.agreement.defs#selectedOfferingsScope> | yes | no | none | Explicit offering boundary for this refusal. The candidate profile names all-offerings and an exact selected-offerings set; a future reviewed compiler must allowlist executable variants and fail closed on an unknown variant. An empty or omitted scope never means all offerings. |
| record | state | string<refused | withdrawn> | yes | no | maxLength:16 | refused creates or continues the refusal for this creator/environment/beneficiary lineage. withdrawn is the only way a refusal ends: it must supersede the exact current refused tip, and deletion or replay of any version never restores the child. A future reviewed resolver must allowlist executable values and fail closed on unknown values. |
| record | visibility | ref:money.atmosphere.agreement.defs#visibility | no | no | none | Publication policy for this refusal itself. Absent means parties — visible to the creator and the refused beneficiary, which is what keeps silent non-payment debuggable rather than mysterious. |
| record | effectiveFrom | string | no | no | format:datetime | Requested inclusive cutoff. The resolver clamps authority to no earlier than durable broker admission of this exact CID; a backdated record cannot reach already-admitted occurrences. |
| record | supersedes | ref:com.atproto.repo.strongRef | no | no | none | The exact published prior refusal version this one replaces, bound by AT-URI and CID. It must resolve to the same creator repo, environment, and beneficiary; a foreign, cross-environment, ancestor, or otherwise non-tip predecessor is invalid, and competing branches fail closed. |
| record | createdAt | string | yes | no | format:datetime | Client-declared instant when the creator authored this immutable refusal version. |
money.atmosphere.agreement.defs10 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| def:paymentType | value | ref:#paymentTypeValue | yes | no | none | Payment type selected by this array item. The object wrapper permits future per-type attenuation without changing the array element shape. |
| def:surface | authority | string | yes | no | format:did | DID whose namespace defines this surface identifier — typically the app that operates the surface. Global comparability comes from the (authority, id) pair, so a child's narrowing claim is provable as a subset of the parent's exact pairs rather than a collision of offeror-local strings. |
| def:surface | id | string | yes | no | minLength:1, maxLength:512 | Surface identifier meaningful under the authority DID: an exact OAuth client_id or an origin is recommended. It is an agreement scope term, never processor or routing authority. |
| def:roleSelection | role | ref:#role | yes | no | none | Child role permitted by this item. A future reviewed compiler must explicitly allowlist supported roles and fail closed on unknown values. |
| def:currencyAmount | amountMinor | integer | yes | no | minimum:0 | Non-negative amount in the currency's smallest integral unit. |
| def:currencyAmount | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code for the commercial currency. Native tokens require a separate asset/network/atomic-amount union variant. |
| def:assetAmount | amountAtomic | string | yes | no | minLength:1, maxLength:78 | Canonical unsigned base-10 integer atomic-unit amount: exact ASCII full match 0|[1-9][0-9]{0,77}, no normalization, and value at most 2^256-1, parsed only with arbitrary-precision arithmetic. Allocation evidence permits zero; payment-v1 receipts require a positive value. This zero extension is deliberate and is not a claim of identical receipt validation. |
| def:assetAmount | asset | string | yes | no | minLength:11, maxLength:179 | Exact case-sensitive fungible-asset identity. Require an ASCII full match of ^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}/[-a-z0-9]{3,8}:[-.%a-zA-Z0-9]{1,128}$, without trimming, case folding, or normalization. Writers use an exact allowlisted spelling; historical verification does not consult a mutable registry. This grammar is copied into the agreement profile rather than referencing the payment package. |
| def:offeringSelection | subject | ref:com.atproto.repo.strongRef | yes | no | none | Exact published catalog record this item selects. |
| def:selectedOfferingsScope | offerings | array<ref:money.atmosphere.agreement.defs#offeringSelection> | yes | no | minLength:1, maxLength:64 | Exact catalog records this scope selects, each bound by AT-URI and CID. Non-empty by construction; an empty set is invalid rather than all-offerings. |
money.atmosphere.agreement.offer32 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | role | ref:money.atmosphere.agreement.defs#role | yes | no | none | What the beneficiary provides. checkout = hosted the buyer-facing transaction surface for the occurrence (today's single-app approval maps here); service = recurring member-facing or backend service; discovery = attributed referral; fulfillment; infrastructure. The launch compiler profile executes checkout and fulfillment only. ATM is never a beneficiary role: its network tariff on a child leg is compiler policy the child acceptance acknowledges. The role names work and one attribution question; it never decides funding position — only the funding source does. |
| record | beneficiaryParty | ref:money.atmosphere.agreement.defs#beneficiaryParty | yes | no | none | Which authenticated party is paid: offeror for an app's posted service terms; acceptor for a creator-authored offer funding a role (a discovery offer, or an open checkout-selling offer). Arbitrary third-party beneficiary DIDs are not valid. The compiler resolves this relative value only after verifying the offer repo owner and acceptance repo owner. |
| record | counterparty | string | no | no | format:did | The DID this offer is addressed to. When present it must equal the acceptance repo owner. Omitted only for an open offer whose eligibility rules independently authorize the acceptance author. |
| record | funding | union<#recipientProceedsFunding | #parentAgreementFunding> | yes | no | none | Open discriminated funding source. The candidate profile names #recipientProceedsFunding and #parentAgreementFunding; a future reviewed compiler must explicitly allowlist every executable variant and fail closed on unknown variants. |
| record | scope | ref:#scope | yes | no | none | Environment, payment-type, offering, and surface boundary for these terms. |
| record | terms | ref:#terms | yes | no | none | Maximum economic terms the acceptor may select without broadening. |
| record | trigger | ref:money.atmosphere.agreement.defs#trigger | yes | no | none | What earns the share: every settled occurrence, only an occurrence attributed to the beneficiary with replay-protected evidence, or every charged cycle while the agreement is effective. attributed-sale is exclusive per pool and role at an occurrence; occurrence and service-period stack. |
| record | attribution | ref:#attribution | no | no | none | Optional attributed-sale bounds: conversion window and recurring tail. Meaningful only when trigger is attributed-sale; a reviewed compiler must fail closed when it is present with any other trigger. |
| record | delegation | union<#noDelegation | #childDelegation> | yes | no | none | Open delegation policy. The candidate profile names #noDelegation and #childDelegation; a future reviewed compiler must explicitly allowlist every executable variant and fail closed on unknown variants. |
| record | visibility | ref:money.atmosphere.agreement.defs#visibility | yes | no | none | Publication policy accepted by every author whose terms are disclosed. The beta supports public for roots and children. Missing or older private authority never becomes permission to publish retroactively; future private placement waits for reviewed Spaces support. |
| record | effectiveFrom | string | no | no | format:datetime | Optional inclusive instant from which this offer may be accepted and compiled. |
| record | expiresAt | string | no | no | format:datetime | Optional exclusive expiry instant after which this offer cannot authorize a new occurrence. |
| record | supersedes | ref:com.atproto.repo.strongRef | no | no | none | The exact published prior offer version this one replaces, bound by AT-URI and CID. |
| record | createdAt | string | yes | no | format:datetime | Client-declared instant when the offeror authored this immutable offer version. |
| def:parentAgreementFunding | parent | ref:com.atproto.repo.strongRef | yes | no | none | The exact immediate parent's public offer, bound by canonical DID-authority AT-URI and CID. A CID-only private parent is not sufficient funding identity. Resolve this exact body before validating lineage and attenuation. |
| def:parentAgreementFunding | parentAcceptance | ref:com.atproto.repo.strongRef | yes | no | none | The exact immediate parent's public acceptance, bound by AT-URI and CID. It must accept funding.parent and pay the child offeror. This applies recursively at every permitted depth. |
| def:scope | environment | ref:money.atmosphere.agreement.defs#environment | yes | no | none | The ATM app environment is part of the immutable agreement boundary. A future reviewed compiler must explicitly allowlist supported environments and fail closed on unknown values. |
| def:scope | paymentTypes | array<ref:money.atmosphere.agreement.defs#paymentType> | yes | no | minLength:1, maxLength:16 | Explicit payment-type items the terms cover. The acceptance must select a non-empty subset. Omission never grants future payment types, and a reviewed compiler profile must fail closed on unknown item values. |
| def:scope | offerings | array<ref:com.atproto.repo.strongRef> | no | no | minLength:1, maxLength:64 | Exact catalog records (product, membership program or tier, ticketed event) the terms are limited to. |
| def:scope | surfaces | array<ref:money.atmosphere.agreement.defs#surface> | no | no | minLength:1, maxLength:16 | Optional sales-surface identifiers the terms are limited to, as exact (authority, id) pairs. Absence normalizes by trigger: on an attributed-sale agreement it means the BENEFICIARY's own surfaces (every pair under the beneficiary DID's authority), never any surface; on an unconditional agreement it means no surface restriction. A child may never broaden its parent's normalized set — narrowing is a fail-closed subset over exact pairs, and an omitted child under an explicit parent is invalid: the child must enumerate. |
| def:terms | basis | ref:money.atmosphere.agreement.defs#basis | yes | no | none | Rate domain. commissionable-gross is captured price after accepted discounts, excluding sales tax, statutory pass-throughs, buyer-localization markup, and separately buyer-borne fees, and is valid only with recipientProceedsFunding. parent-pool is the exact occurrence-local amount allocated by the referenced parent agreement to the child offeror and is valid only with parentAgreementFunding. A future reviewed compiler must explicitly allowlist supported values and fail closed on unknown values. |
| def:terms | maxFeeShareBps | integer | yes | no | minimum:0, maximum:10000 | Maximum share of the named basis that the offeror grants the acceptor permission to select. The acceptance records one exact feeShareBps at or below this maximum. |
| def:terms | maxSettlementCostBps | integer | no | no | minimum:0, maximum:10000 | Cap on recipient-borne pool-level processing-and-settlement costs, in basis points of the collected root App Fee: multi-currency settlement and inbound Application Fee conversion only. Monetary components are floored once and reconciled one-way; over-collection returns to the recipient, under-collection is ATM-borne, and accepted excess is beneficiary-borne. Every Transfer-dependent cross-border/conversion cost is the beneficiary's own deduction, fixed before allocation under binding authority where required. Required on roots and absent on children; the beta cap ceiling is 150. The acceptance records selection.maxSettlementCostBps explicitly. |
| def:terms | ticketFee | ref:#ticketFee | no | no | none | Separate organizer-approved ticket fee schedule. It is valid only when scope.paymentTypes includes ticket and applies to an occurrence only when the acceptance selection also includes ticket. The bps and flat values bind the approved schedule; passToBuyer is its inherited bearer default. A separately creator-authored event or organizer override is frozen on the occurrence and may select the effective bearer. Never silently divided by another agreement. |
| def:ticketFee | bps | integer | yes | no | minimum:0, maximum:10000 | Basis points of paid ticket face value. Percentage-only occurrences floor once over the complete paid order face value; historical positive-flat occurrences use the occurrence's frozen legacy per-ticket rounding policy. |
| def:ticketFee | flat | union<money.atmosphere.agreement.defs#currencyAmount> | no | no | none | Explicit fixed component per paid ticket, if any. The candidate profile names the tagged #currencyAmount variant; a future reviewed compiler must explicitly allowlist executable variants and fail closed on unknown variants. A zero or absent component uses the percentage-only occurrence policy; exact compiler and rounding policy is frozen on each occurrence. |
| def:ticketFee | passToBuyer | boolean | yes | no | none | Inherited default for whether the buyer bears this component on top of face value. A separately creator-authored event or organizer override may select the effective occurrence bearer, which ATM freezes with the payment. This is a different bearer model from a creator-borne percentage. |
| def:childDelegation | maxDepth | integer | yes | no | minimum:1, maximum:8 | Maximum number of descendant funding hops permitted below this agreement. |
| def:childDelegation | roles | array<ref:money.atmosphere.agreement.defs#roleSelection> | yes | no | minLength:1, maxLength:8 | Child roles the beneficiary may fund. |
| def:attribution | conversionWindowSeconds | integer | no | no | minimum:1, maximum:31536000 | How long after the qualifying attribution evidence a checkout may still credit the beneficiary, in seconds. Evidence whose validity falls outside this window does not select the agreement. Absence means the evidence class's own reviewed expiry governs alone. |
| def:attribution | recurringTail | union<#tailCycleCount | #tailAgreementLifetime> | no | no | none | Open tail policy for how long one frozen attribution keeps earning on a recurring relationship. The candidate profile names an exact cycle count and an explicit agreement-lifetime choice; a future reviewed compiler must allowlist executable variants and fail closed on unknown variants. Distinct from the agreement's own effective window, which governs whether the agreement is live at all — conflating the two would silently convert a bounded referral into a perpetual one. |
| def:tailCycleCount | cycles | integer | yes | no | minimum:1, maximum:1200 | The frozen attribution earns on this many successfully charged cycles, starting with the attributed first charge, then stops earning without ending the agreement. |
money.atmosphere.agreement.revocation3 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | subject | ref:com.atproto.repo.strongRef | yes | no | none | The exact author-owned offer or acceptance version being revoked, bound by canonical DID-authority AT-URI and CID. The URI repo DID must equal this revocation record's repo DID, its collection must be exactly money.atmosphere.agreement.offer or money.atmosphere.agreement.acceptance, and the exact CID/body must be independently verified. |
| record | effectiveAt | string | no | no | format:datetime | Optional requested inclusive occurrence-admission cutoff. For each exact revocation CID, the broker uses the later of this value (or createdAt when absent) and that revocation CID's durable broker admission; across duplicate valid revocations the earliest such admission-clamped cutoff wins. Occurrences admitted at or after the cutoff compile without the subject, while earlier admitted occurrences and frozen allocations remain unchanged. |
| record | createdAt | string | yes | no | format:datetime | Client-declared authorship time and the default requested cutoff when effectiveAt is absent. It is not trusted broker admission time and cannot backdate revocation authority before durable admission of this exact revocation CID. |
money.atmosphere.agreement.rootEnablement9 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | state | string<enabled | revoked> | yes | no | maxLength:16 | enabled creates an initial root decision or supersedes an enabled tip within the same acceptance/offering lineage. revoked is a non-expiring terminal creator withdrawal for that exact lineage; it must supersede the exact current tip, omit paymentTypes and expiresAt, and a future reviewed resolver rejects a revoked record without that verified predecessor. No successor may reopen a revoked lineage. |
| record | acceptance | ref:com.atproto.repo.strongRef | yes | no | none | The exact published bilateral acceptance this enablement binds, by AT-URI and CID. Its author is determined by the offer direction; it need not be the enablement author. |
| record | offering | ref:money.atmosphere.agreement.defs#offeringSelection | yes | no | none | The one exact creator catalog record on which this accepted root is enabled. A different offering requires a different enablement record. |
| record | paymentTypes | array<ref:money.atmosphere.agreement.defs#paymentType> | no | no | minLength:1, maxLength:16 | Optional non-empty payment-type narrowing under both the acceptance and exact offering when state is enabled. Absence preserves the acceptance's own selection; an empty array is invalid rather than an implicit wildcard. state=revoked must omit this field or the decision is invalid. |
| record | visibility | ref:money.atmosphere.agreement.defs#visibility | no | no | none | Publication policy for this enablement decision itself. Absent means parties. It may be no broader than both the verified bound offer visibility and acceptance publication choice; public is valid only when every disclosed party authorized public. A successor preserves the exact acceptance and offering and may never broaden its predecessor's disclosure. A newly authored acceptance starts a new root-enablement URI/lineage and must not supersede the old lineage. |
| record | effectiveFrom | string | no | no | format:datetime | Requested inclusive start or revocation cutoff. Authority is clamped no earlier than durable broker admission of this exact CID, so a backdated record cannot rewrite an already admitted occurrence. |
| record | expiresAt | string | no | no | format:datetime | Optional end for an enabled decision only. state=revoked must omit expiresAt: a terminal tombstone never expires or reopens its lineage. |
| record | supersedes | ref:com.atproto.repo.strongRef | no | no | none | The exact published prior enablement version this one replaces. Whenever present it must resolve to the exact current tip with the same creator, acceptance, and offering; a different acceptance or offering starts a new root-enablement URI/lineage and must not supersede this one. Required by the reviewed resolver when state is revoked. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.agreement.settlement46 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | environment | ref:money.atmosphere.agreement.defs#environment | yes | no | none | No description in lexicon yet. |
| record | kind | string<allocation | reversal | reinstatement | adjustment> | yes | no | maxLength:64 | A reviewed verifier allowlists executable kinds. All amount fields on a compensation are incremental forward-signed changes, never cumulative targets. A reversal can restore carry while reducing its basis. |
| record | publication | string<atm-public-beta-v1> | yes | no | maxLength:64 | The fixed public-beta policy accepted through deliberate authoring/payment actions. This is not a separate optional visibility switch. Missing policy or legacy private authority never authorizes publication. |
| record | eventId | string | yes | no | minLength:32, maxLength:32 | Opaque 128-bit lowercase-hex occurrence event identity. Frozen once and reused on replay. Never a raw processor identifier. Duplicate identities cannot append a second delta. |
| record | previous | ref:com.atproto.repo.strongRef | no | no | none | Required on every compensation and absent on allocation: the exact immediately preceding effective settlement record for this occurrence. The complete predecessor chain is necessary to verify current commercial amounts as of this tip. |
| record | proof | ref:com.atproto.repo.strongRef | yes | no | none | The exact ATM-authored money.atmosphere.payment.proof URI and CID. It attests its original payment occurrence; later recurring cycles require separate occurrence authority. |
| record | occurrence | ref:#occurrence | yes | no | none | No description in lexicon yet. |
| record | legs | array<ref:#leg> | yes | no | minLength:1, maxLength:80 | Every applied acceptance in frozen roots-then-depth-first ancestry order. Every compensation has the identical leg set in identical order, including zero deltas. |
| record | networkTariff | ref:#networkTariff | no | no | none | Required whenever any child exists: the frozen child tariff schedule. Every effective leg rate is public and zero for a supported same-principal exception. |
| record | rounding | ref:#roundingPolicy | yes | no | none | The rounding, carry, and residual policy under which every leg was computed. |
| record | clawbackPolicy | string<atm-clawback-recompile-v1> | no | no | maxLength:64 | Required on a reversal or reinstatement, absent otherwise: the rule by which every withdrawn or restored amount was derived. atm-clawback-recompile-v1 recomputes the frozen allocation at occurrence.netBasis under the rounding policy and takes per-participant differences, so a refund leaves the ledger a smaller sale would have produced; nothing is apportioned. A reviewed verifier must allowlist supported values and fail closed on unknown values. |
| record | createdAt | string | yes | no | format:datetime | Broker-declared authoring time. Initial allocation evidence is frozen before downstream obligations arm; later cost returns append evidence after reconciliation. |
| def:occurrence | basis | union<money.atmosphere.agreement.defs#currencyAmount | money.atmosphere.agreement.defs#assetAmount> | yes | no | none | Original frozen commissionable basis, excluding tax, statutory pass-throughs, localization markup and buyer fees. This never changes within the occurrence. |
| def:occurrence | netBasis | union<money.atmosphere.agreement.defs#currencyAmount | money.atmosphere.agreement.defs#assetAmount> | no | no | none | Required on a reversal/reinstatement: cumulative remaining commissionable basis after this event, 0..basis. Absent on allocation/adjustment. A(G_after) − A(G_before) is the incremental floor delta. Missing frozen component attribution parks reconciliation; total processor refunded principal is not this basis. |
| def:occurrence | cycleAnchorAt | string | no | no | format:datetime | The exact recurring cycle anchor this occurrence settled, when the occurrence is a subscription cycle. |
| def:occurrence | snapshot | ref:#snapshot | no | no | none | No description in lexicon yet. |
| def:snapshot | profile | string<atm-settlement-occurrence-v1> | yes | no | maxLength:64 | Open profile vocabulary naming how the private occurrence snapshot was committed. atm-settlement-occurrence-v1 is the lowercase hexadecimal SHA-256 of the exact frozen operational occurrence body under the ledger's postgres-jsonb-text-sha256-v1 profile, including its broker-held 128-bit random salt. The digest binds restricted operational evidence for a separately authorized audit; it neither replaces this public record's ordinary CID nor proves hidden source facts to the public. A reviewed verifier must allowlist supported values and fail closed on unknown values. |
| def:snapshot | commitment | string | yes | no | minLength:64, maxLength:64 | The occurrence commitment under profile: 64 lowercase hexadecimal characters. |
| def:leg | agreement | ref:com.atproto.repo.strongRef | yes | no | none | Exact money.atmosphere.agreement.acceptance URI and CID. Resolve its exact offer and funding references; funding determines root/child position. |
| def:leg | allocation | ref:#allocation | yes | no | none | No description in lexicon yet. |
| def:signedCurrencyAmount | amountMinor | integer | yes | no | minimum:-9007199254740991, maximum:9007199254740991 | Signed minor units within ±(2^53 − 1). |
| def:signedCurrencyAmount | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 code, exactly three letters; equals the occurrence basis currency. |
| def:signedAssetAmount | amountAtomic | string | yes | no | minLength:1, maxLength:79 | Matches ^-?(0|[1-9][0-9]{0,77})$ with -0 rejected and magnitude at most 2^256 − 1; parsed only with arbitrary precision. |
| def:signedAssetAmount | asset | string | yes | no | minLength:11, maxLength:179 | The exact network-qualified asset identifier under the same CAIP-19-compatible grammar as money.atmosphere.agreement.defs#assetAmount.asset (^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}/[-a-z0-9]{3,8}:[-.%a-zA-Z0-9]{1,128}$); equals the occurrence basis asset. |
| def:allocation | gross | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | Floor-rounded amount from occurrence basis for a root, or immediate parent gross for a child. A compensation stores the difference between cumulative floors. |
| def:allocation | tariffBps | integer | yes | no | minimum:0, maximum:10000 | Frozen effective child tariff. Root rate, tariff amount and tariff carry are all zero on every kind. |
| def:allocation | tariff | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | ATM retained child tariff: floor(gross × effective rate / 10000) plus tariffCarryCollected on allocation; signed difference thereafter. |
| def:allocation | tariffCarryCollected | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | Tariff lineage carry funded by this node residual; zero on roots and cost-only adjustments. |
| def:allocation | carryReleased | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | Beneficiary lineage carry funded from the immediate parent residual (creator residual for roots). Frozen release amounts are re-funded in frozen participant order after basis changes. |
| def:allocation | delegatedOutflow | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | Total gross plus carry funded to immediate child legs. Zero on a leaf or cost-only adjustment. |
| def:allocation | costAdjust | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | Beneficiary-borne non-conversion commercial deduction under the frozen cost policy. Positive charges; negative returns. No raw processor data. Recipient-borne costs use settlementCost separately. |
| def:allocation | conversionDeduction | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | Beneficiary-borne commercial conversion deduction fixed before allocation under binding authority. Reconciliation returns excess; no after-the-fact increase. Amount remains in occurrence denomination. |
| def:allocation | net | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | Own commercial entitlement after delegated outflow, tariff and authorized beneficiary costs. A compensation stores its signed change; a negative cumulative amount denotes a commercial shortfall, not fabricated processor recovery. |
| def:allocation | settlementCost | ref:#settlementCost | no | no | none | Recipient-borne pool-level components under this root acceptance cap. Root-only and separate from beneficiary net and principal refund target. |
| def:networkTariff | schedule | string<atm-network-tariff-v1> | yes | no | maxLength:64 | Open tariff-schedule vocabulary. atm-network-tariff-v1 is a uniform 1000 bps of each child leg, zero when the child beneficiary and ATM are one economic principal, never applied to a root. |
| def:networkTariff | bps | integer | yes | no | minimum:0, maximum:10000 | Nominal acknowledged schedule bps, distinct from an individual leg effective zero exception. |
| def:settlementCost | policy | string<atm-settlement-cost-v1> | yes | no | maxLength:64 | Open policy vocabulary. atm-settlement-cost-v1 charges Stripe-published-rate components fixed at allocation and keyed on the recipient's settlement currency, per component on its affected basis, floored per component, never estimated, capped at the accepted cap, reconciled one-directionally; excess above the cap is borne by the beneficiary whose leg incurred it. |
| def:settlementCost | capBps | integer | yes | no | minimum:0, maximum:10000 | The cap the root acceptance accepted (selection.maxSettlementCostBps), in basis points of the collected App Fee. |
| def:settlementCost | components | array<ref:#settlementCostComponent> | yes | no | maxLength:8 | Exact frozen component set/order on every record after allocation. On allocation the amount is the charged amount; later records carry only the signed change, zero unless returned under its independent target. |
| def:settlementCostComponent | component | string<multi-currency-settlement | inbound-conversion> | yes | no | maxLength:64 | Open component vocabulary, pool-level only. multi-currency-settlement fires only when the recipient's charge settlement currency is one of the broker's enabled non-primary balances; inbound-conversion only when the Application Fee reaches the platform in a currency that is neither the primary currency nor an enabled balance (the charge settlement currency, the ApplicationFee denomination, and its platform balance-transaction denomination are distinct routing facts). Cross-border Transfer and conversion costs are beneficiary-borne, computed on the beneficiary's actual Transfer, and never appear here. A reviewed compiler must allowlist supported values and fail closed on unknown values. |
| def:settlementCostComponent | schedule | string | yes | no | maxLength:64 | The versioned published-rate schedule the acceptance bound at authenticated admission; the rate applied is that schedule's dated rate in force at the occurrence. The acceptance freezes the cap and the schedule identity, never every future processor rate. |
| def:settlementCostComponent | bps | integer | yes | no | minimum:0, maximum:10000 | The published rate applied, in basis points of the component's base. |
| def:settlementCostComponent | base | union<money.atmosphere.agreement.defs#currencyAmount | money.atmosphere.agreement.defs#assetAmount> | yes | no | none | The component's affected basis: this root's pro-rata partition of the pool. |
| def:settlementCostComponent | beneficiaryAmount | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | This component's beneficiary-borne excess, included inside the root costAdjust rather than debited twice. At allocation amount + beneficiaryAmount = floor(base × bps / 10000), and recipient component amounts sum to min(total computed components, root monetary cap). The exact bearer split is frozen. Later entries are signed returns bounded separately for each bearer; beneficiary excess must remain covered by cumulative costAdjust. |
| def:settlementCostComponent | amount | union<#signedCurrencyAmount | #signedAssetAmount> | yes | no | none | Recipient-borne capped component amount on allocation; signed incremental recipient return thereafter. Returns cannot exceed the preceding outstanding component or satisfy principal twice. Base and bps remain the original frozen unsigned facts. |
| def:roundingPolicy | policy | string<atm-rounding-floor-carry-v1> | yes | no | maxLength:64 | Open rounding-policy vocabulary. atm-rounding-floor-carry-v1 floors every leg, carries sub-unit remainders per beneficiary lineage, releases carry only from a later occurrence's residual, and never donates residue to ATM; a reversal or reinstatement recomputes the same rule at the net basis (see clawbackPolicy) rather than apportioning a residue. A reviewed verifier must allowlist supported values and fail closed on unknown values. |
money.atmosphere.analytics.getPaymentVolumeTrends25 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<test | live> | no | no | maxLength:16 | Which app environment to report on. |
| params | granularity | string<hour | day> | no | no | maxLength:8 | Time-bucket size. |
| params | windowDays | integer | no | no | minimum:1, maximum:92 | Lookback window in days from now. |
| params | currency | string | no | no | minLength:3, maxLength:16 | Optional read-only filter over historical ledger denominations; normalized case-insensitively. |
| output | series | array<ref:#bucket> | yes | no | none | No description in lexicon yet. |
| output | byMethod | array<ref:#methodStat> | yes | no | none | No description in lexicon yet. |
| output | byCurrency | array<ref:#currencyStat> | yes | no | none | No description in lexicon yet. |
| output | window | ref:#window | yes | no | none | No description in lexicon yet. |
| def:bucket | bucket | string | yes | no | format:datetime | Start of the time bucket (UTC). |
| def:bucket | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| def:bucket | count | integer | yes | no | none | All payments in the bucket. |
| def:bucket | successCount | integer | yes | no | none | Payments with a settled status in the bucket. |
| def:bucket | grossAmount | integer | yes | no | none | Gross settled volume for this currency in the bucket. |
| def:methodStat | method | string | yes | no | maxLength:32 | Payment method type (e.g. |
| def:methodStat | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:methodStat | count | integer | yes | no | none | No description in lexicon yet. |
| def:methodStat | grossAmount | integer | yes | no | none | No description in lexicon yet. |
| def:currencyStat | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:currencyStat | count | integer | yes | no | none | No description in lexicon yet. |
| def:currencyStat | successCount | integer | yes | no | none | No description in lexicon yet. |
| def:currencyStat | grossAmount | integer | yes | no | none | No description in lexicon yet. |
| def:window | granularity | string | yes | no | maxLength:8 | No description in lexicon yet. |
| def:window | windowDays | integer | yes | no | none | No description in lexicon yet. |
| def:window | from | string | yes | no | format:datetime | No description in lexicon yet. |
| def:window | to | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.analytics.getRefundAnalysis19 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| params | windowDays | integer | no | no | minimum:1, maximum:92 | No description in lexicon yet. |
| params | currency | string | no | no | minLength:3, maxLength:16 | No description in lexicon yet. |
| output | byReason | array<ref:#reasonStat> | yes | no | none | No description in lexicon yet. |
| output | summary | array<ref:#currencySummary> | yes | no | none | No description in lexicon yet. |
| output | window | ref:#window | yes | no | none | No description in lexicon yet. |
| def:reasonStat | reasonCode | string | yes | no | maxLength:32 | Refund reason code, or 'unspecified'. |
| def:reasonStat | status | string | yes | no | maxLength:24 | No description in lexicon yet. |
| def:reasonStat | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:reasonStat | count | integer | yes | no | none | No description in lexicon yet. |
| def:reasonStat | amount | integer | yes | no | none | No description in lexicon yet. |
| def:currencySummary | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:currencySummary | refundCount | integer | yes | no | none | No description in lexicon yet. |
| def:currencySummary | refundedAmount | integer | yes | no | none | No description in lexicon yet. |
| def:currencySummary | settledCount | integer | yes | no | none | Settled payments in window — denominator for refund rate. |
| def:currencySummary | settledGrossAmount | integer | yes | no | none | No description in lexicon yet. |
| def:window | windowDays | integer | yes | no | none | No description in lexicon yet. |
| def:window | from | string | yes | no | format:datetime | No description in lexicon yet. |
| def:window | to | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.analytics.getSubscriptionMetrics14 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| params | windowDays | integer | no | no | minimum:1, maximum:92 | No description in lexicon yet. |
| params | currency | string | no | no | minLength:3, maxLength:16 | No description in lexicon yet. |
| output | byCurrency | array<ref:#currencyMetrics> | yes | no | none | No description in lexicon yet. |
| output | window | ref:#window | yes | no | none | No description in lexicon yet. |
| output | notes | array<string> | yes | no | none | No description in lexicon yet. |
| def:currencyMetrics | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:currencyMetrics | activeCount | integer | yes | no | none | No description in lexicon yet. |
| def:currencyMetrics | mrr | integer | yes | no | none | Interval-normalized monthly recurring revenue (current active snapshot). |
| def:currencyMetrics | newCount | integer | yes | no | none | Subscriptions created in the window. |
| def:currencyMetrics | canceledCount | integer | yes | no | none | Subscriptions canceled in the window (by canceledAt). |
| def:window | windowDays | integer | yes | no | none | No description in lexicon yet. |
| def:window | from | string | yes | no | format:datetime | No description in lexicon yet. |
| def:window | to | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.app.assertRecipient2 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | recipientDid | string | yes | no | format:did | The recipient (creator) DID asserted by the app-held user session. |
| output | accepted | boolean | yes | no | none | No description in lexicon yet. |
money.atmosphere.app.auditFeeDistributions22 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | cursor | string | no | no | maxLength:128 | Opaque keyset cursor from a prior page. |
| params | environment | string<test | live> | no | no | maxLength:16 | Which app environment's payouts to return. |
| params | paymentId | string | no | no | maxLength:128 | Optional filter to a single originating payment. |
| params | status | string<queued | scheduled | transferred | held | reversed | failed> | no | no | maxLength:16 | Optional filter to one synthesized payout status. |
| params | limit | integer | no | no | minimum:1, maximum:200 | No description in lexicon yet. |
| output | distributions | array<ref:#distribution> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:128 | Keyset cursor for the next page; absent when no more rows. |
| def:distribution | id | string | yes | no | maxLength:128 | Distribution row id. |
| def:distribution | paymentId | string | yes | no | maxLength:128 | The originating payment id (the app-visible payment id). |
| def:distribution | chargeId | string | no | no | maxLength:256 | Processor charge/invoice id this distribution settled against. |
| def:distribution | role | string | yes | no | maxLength:32 | For this endpoint, distribution role 'app' identifies the calling app as the payee of ATM's contractual revenue-share obligation. |
| def:distribution | amount | integer | yes | no | none | Gross amount of ATM's contractual revenue-share obligation to the app for this distribution, calculated from ATM's own application-fee base (or an equivalent platform-fee amount computed from gross proceeds on an enabled route without a separate application fee), before any clawback, in the smallest currency unit. |
| def:distribution | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| def:distribution | status | string<queued | scheduled | transferred | held | reversed | failed> | yes | no | maxLength:16 | Synthesized payout status. |
| def:distribution | heldReason | string | no | no | maxLength:512 | Operator-authored reason a queued transfer is held (only set when status = held). |
| def:distribution | heldUntil | string | no | no | format:datetime | Scheduled payout time. |
| def:distribution | processorTransferId | string | no | no | maxLength:256 | Rail-agnostic processor transfer id for the payout movement (e.g. |
| def:distribution | clawbackStatus | string<pending | reversed | failed | waived> | no | no | maxLength:16 | Partial-refund clawback state of an already-transferred revenue-share payment from ATM to the app. |
| def:distribution | clawbackAmount | integer | yes | no | none | Amount of ATM's revenue-share payment to the app clawed back by a partial refund, in the smallest currency unit. |
| def:distribution | processorReversalId | string | no | no | maxLength:256 | Rail-agnostic processor reversal id for the clawback/reversal movement. |
| def:distribution | period | string | no | no | maxLength:16 | Optional operator grouping period. |
| def:distribution | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.app.defs64 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| def:modules | payments | boolean | yes | no | none | No description in lexicon yet. |
| def:modules | products | boolean | yes | no | none | No description in lexicon yet. |
| def:modules | subscriptions | boolean | yes | no | none | No description in lexicon yet. |
| def:modules | pledges | boolean | no | no | none | No description in lexicon yet. |
| def:modules | tickets | boolean | yes | no | none | No description in lexicon yet. |
| def:modules | machinePayments | boolean | no | no | none | Planned machine-payments (MPP/x402) module. |
| def:modules | federatedCommerceOrders | boolean | no | no | none | Read-only rollout state for revisioned product and commission orders. |
| def:modules | federatedFiniteInventory | boolean | no | no | none | Read-only app/environment rollout state for shared finite product inventory. |
| def:modules | reversibleFeeWaivers | boolean | no | no | none | Read-only ATM deployment readiness for reversible automatic app-fee waivers. |
| def:subscriptionPolicy | activeLimit | string<multiple | one-per-payer-recipient> | yes | no | maxLength:64 | No description in lexicon yet. |
| def:ticketing | qrPasses | boolean | yes | no | none | No description in lexicon yet. |
| def:ticketing | walletPasses | boolean | yes | no | none | No description in lexicon yet. |
| def:ticketFee | bps | integer | yes | no | minimum:0, maximum:1000 | ATM-owned ticket processing fee percentage in basis points. |
| def:ticketFee | flatAmount | integer | yes | no | minimum:0, maximum:1000 | ATM-owned flat ticket processing fee in cents per paid ticket. |
| def:ticketFee | flatCurrency | string<usd> | no | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code for flatAmount. |
| def:ticketFee | passToBuyer | boolean | yes | no | none | Whether the ATM ticket processing fee is added to buyer checkout price instead of absorbed by the organizer. |
| def:payout | holdDays | integer | yes | no | minimum:0, maximum:90 | Revenue-share payout hold in days. |
| def:feeTier | subscriptionGroupKey | string | yes | no | maxLength:128 | The app-owned plan that grants this tier, matched against a settling subscription's subscriptionGroupKey. |
| def:feeTier | feeShareBps | integer | yes | no | minimum:0, maximum:10000 | Lowered ATM application-fee rate (basis points) for that subscriber's creator revenue. |
| def:feeTier | activeSubscriptionPolicy | string<reversible-waiver> | no | no | maxLength:32 | Optional exact policy. |
| def:feeTier | label | string | no | no | maxLength:64 | Optional label; stored as the resulting override's reason. |
| def:checkout | theme | string<auto | light | dark> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:paymentMethods | enabled | array<string<card | link | apple_pay | google_pay | us_bank_account | klarna>> | yes | no | maxLength:12 | No description in lexicon yet. |
| def:paymentMethods | disabled | array<string<card | link | apple_pay | google_pay | us_bank_account | klarna>> | yes | no | maxLength:12 | No description in lexicon yet. |
| def:paymentMethods | dynamicPaymentMethods | boolean | yes | no | none | No description in lexicon yet. |
| def:publicRecordPaymentPolicy | appRecord | string<public | private> | no | no | maxLength:16 | No description in lexicon yet. |
| def:publicRecordPaymentPolicy | attestation | string<public | private> | no | no | maxLength:16 | No description in lexicon yet. |
| def:publicRecordsPolicy | enabled | boolean | yes | no | none | Master switch: when false ATM writes no public attested record for this app regardless of per-payment-type visibility. |
| def:publicRecordsPolicy | defaults | ref:#publicRecordPaymentPolicy | yes | no | none | No description in lexicon yet. |
| def:publicRecordsPolicy | byPaymentType | ref:#publicRecordsPolicyByPaymentType | yes | no | none | No description in lexicon yet. |
| def:xrpcReceiver | serviceRef | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:xrpcReceiver | method | string | yes | no | maxLength:300, format:nsid | XRPC receiver method NSID. |
| def:eventDelivery | transport | string<webhook | xrpc> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:eventDelivery | xrpcReceiver | ref:#xrpcReceiver | yes | no | none | No description in lexicon yet. |
| def:webhookEventSetting | type | string<app.webhook.test | payment.completed | payment.failed | payment.refunded | payment.refund-updated | payment.disputed | payment.dispute-closed | order.updated | subscription.invoice-paid | subscription.change-updated | subscription.updated | subscription.canceled | subscription.payment-failed | subscription.recovered | pledge.created | pledge.canceled | pledge.converted | pledge.conversion-failed | payer.record.requested | payer.claimed | creator.proof.requested | attestation.updated | product.updated | product.archived | product.deleted | ticket.hold.created | ticket.hold.expired | tickets.issued | ticket.event-canceled | ticket.voided | ticket.released | ticket.refunded | ticket.partial-refund-review | ticket.failed-refund-review | ticket.checked-in | ticket.form-submitted | ticket.waitlist.joined | ticket.waitlist.offered | ticket.collaboration.invited | ticket.collaboration.accepted | ticket.collaboration.revoked | customer.segment.message-requested | recipient.authorization.updated> | yes | no | maxLength:128 | ATM webhook event type, such as payment.completed. |
| def:webhookEventSetting | enabled | boolean | yes | no | none | No description in lexicon yet. |
| def:webhook | configured | boolean | yes | no | none | No description in lexicon yet. |
| def:webhook | url | string | yes | yes | format:uri | No description in lexicon yet. |
| def:webhook | paused | boolean | yes | no | none | No description in lexicon yet. |
| def:webhook | secretRotatedAt | string | yes | yes | format:datetime | No description in lexicon yet. |
| def:webhook | previousSecretExpiresAt | string | yes | yes | format:datetime | No description in lexicon yet. |
| def:config | appDid | string | yes | no | format:did | No description in lexicon yet. |
| def:config | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:config | status | string<active | sandbox> | yes | no | maxLength:32 | App-environment status. |
| def:config | appUrl | string | yes | yes | format:uri | No description in lexicon yet. |
| def:config | feeShareBps | integer | yes | no | minimum:0, maximum:10000 | No description in lexicon yet. |
| def:config | webhook | ref:#webhook | yes | no | none | No description in lexicon yet. |
| def:config | appConfig | ref:#configAppConfig | yes | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | tip | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | subscribe | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | shop | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | commission | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | ticket | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:configAppConfig | modules | ref:#modules | yes | no | none | No description in lexicon yet. |
| def:configAppConfig | subscriptionPolicy | ref:#subscriptionPolicy | yes | no | none | No description in lexicon yet. |
| def:configAppConfig | ticketing | ref:#ticketing | yes | no | none | No description in lexicon yet. |
| def:configAppConfig | ticketFee | ref:#ticketFee | yes | no | none | No description in lexicon yet. |
| def:configAppConfig | payout | ref:#payout | yes | no | none | No description in lexicon yet. |
| def:configAppConfig | checkout | ref:#checkout | yes | no | none | No description in lexicon yet. |
| def:configAppConfig | paymentMethods | ref:#paymentMethods | yes | no | none | No description in lexicon yet. |
| def:configAppConfig | publicRecords | ref:#publicRecordsPolicy | yes | no | none | No description in lexicon yet. |
| def:configAppConfig | eventDelivery | ref:#eventDelivery | yes | no | none | No description in lexicon yet. |
| def:configAppConfig | webhookEvents | array<ref:#webhookEventSetting> | yes | no | maxLength:128 | No description in lexicon yet. |
| def:configAppConfig | feeTiers | array<ref:#feeTier> | yes | no | maxLength:20 | Declarative variable application-fee tiers (up to 20): each maps one of the app's own subscription plans to a lower ATM application-fee rate auto-applied to that subscriber's creator revenue. |
money.atmosphere.app.getConfig1 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
money.atmosphere.app.getRecipientApproval6 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | recipientDid | string | yes | no | maxLength:2048, format:did | No description in lexicon yet. |
| params | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| output | status | string<not-requested | pending | approved | blocked | revoked | needs-review> | yes | no | maxLength:32 | No description in lexicon yet. |
| output | id | string | no | no | maxLength:128 | No description in lexicon yet. |
| output | onboardingUrl | string | no | no | format:uri | No description in lexicon yet. |
| output | paymentSetup | string<not-checked | required | ready | unavailable> | yes | no | maxLength:32 | not-checked when this app has no current approval; required when an approved creator must complete payment setup; ready only after fresh capability and current relationship checks; unavailable when readiness cannot be confirmed. |
money.atmosphere.app.requestRecipientApproval32 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | recipientDid | string | yes | no | format:did | No description in lexicon yet. |
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | paymentTypes | array<string<tip | subscribe | shop | commission | ticket>> | yes | no | minLength:1, maxLength:32 | No description in lexicon yet. |
| input | feeShareBps | integer | no | no | minimum:0, maximum:10000 | Maximum ATM application-fee rate requested for this recipient, in basis points of the gross payment. |
| input | publicRecords | ref:#publicRecordsPolicy | no | no | none | No description in lexicon yet. |
| input | requestReason | string | no | no | maxLength:3000, maxGraphemes:300 | No description in lexicon yet. |
| input | setupReturnUrl | string | no | no | format:uri | No description in lexicon yet. |
| input | recipientAssertionJwt | string | no | no | maxLength:4096 | Optional short-lived recipient (creator) presence token: a com.atproto.server.getServiceAuth JWT with iss = recipientDid, aud = ATM broker, lxm = money.atmosphere.app.assertRecipient. |
| output | id | string | yes | no | maxLength:128 | No description in lexicon yet. |
| output | status | string<pending | approved | blocked | revoked | needs-review> | yes | no | maxLength:32 | No description in lexicon yet. |
| output | dashboardUrl | string | yes | no | format:uri | No description in lexicon yet. |
| output | onboardingUrl | string | no | no | format:uri | ATM-hosted URL where the creator can finish payment setup. |
| output | paymentTypes | array<string<tip | subscribe | shop | commission | ticket>> | yes | no | maxLength:32 | No description in lexicon yet. |
| output | feeShareBps | integer | yes | no | minimum:0, maximum:10000 | No description in lexicon yet. |
| output | ticketFee | ref:#ticketFee | no | no | none | Exact ATM ticket fee terms included in the pending approval when paymentTypes contains ticket. |
| output | materialChangeReasons | array<string> | no | no | maxLength:32 | Which requested terms materially changed versus the existing approval (empty when none). |
| output | autoApproved | boolean | no | no | none | Deprecated compatibility field. |
| output | needsPaymentSetup | boolean | no | no | none | True when the app should route the creator through ATM to finish setup. |
| def:publicRecordPaymentPolicy | appRecord | string<public | private> | no | no | maxLength:16 | No description in lexicon yet. |
| def:publicRecordPaymentPolicy | attestation | string<public | private> | no | no | maxLength:16 | No description in lexicon yet. |
| def:publicRecordsPolicy | enabled | boolean | no | no | none | Whether this app may send explicit payer-facing public payment record choices for this recipient scope. |
| def:publicRecordsPolicy | defaults | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicy | byPaymentType | ref:#publicRecordsPolicyByPaymentType | no | no | none | No description in lexicon yet. |
| def:ticketFee | bps | integer | yes | no | minimum:0, maximum:1000 | No description in lexicon yet. |
| def:ticketFee | flatAmount | integer | yes | no | minimum:0, maximum:1000 | No description in lexicon yet. |
| def:ticketFee | flatCurrency | string<usd> | no | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| def:ticketFee | passToBuyer | boolean | yes | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | tip | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | subscribe | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | shop | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | commission | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | ticket | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
money.atmosphere.app.updateConfig46 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | appUrl | string | no | yes | format:uri | No description in lexicon yet. |
| input | webhookUrl | string | no | yes | format:uri | No description in lexicon yet. |
| input | webhookPaused | boolean | no | no | none | No description in lexicon yet. |
| input | feeShareBps | integer | no | no | minimum:0, maximum:10000 | No description in lexicon yet. |
| input | modules | ref:#modules | no | no | none | Writable module toggles. |
| input | subscriptionPolicy | ref:#subscriptionPolicy | no | no | none | No description in lexicon yet. |
| input | ticketing | ref:#ticketing | no | no | none | No description in lexicon yet. |
| input | ticketFee | ref:#ticketFee | no | no | none | No description in lexicon yet. |
| input | payout | ref:#payout | no | no | none | No description in lexicon yet. |
| input | checkout | ref:#checkout | no | no | none | No description in lexicon yet. |
| input | paymentMethods | ref:#paymentMethods | no | no | none | No description in lexicon yet. |
| input | publicRecords | ref:#publicRecordsPolicy | no | no | none | No description in lexicon yet. |
| input | eventDelivery | ref:#eventDelivery | no | no | none | No description in lexicon yet. |
| input | webhookEvents | array<ref:#webhookEventSetting> | no | no | maxLength:128 | No description in lexicon yet. |
| input | feeTiers | array<ref:money.atmosphere.app.defs#feeTier> | no | no | maxLength:20 | Full replacement of the app's variable-app-fee tiers (up to 20). |
| def:publicRecordPaymentPolicy | appRecord | string<public | private> | no | no | maxLength:16 | No description in lexicon yet. |
| def:publicRecordPaymentPolicy | attestation | string<public | private> | no | no | maxLength:16 | No description in lexicon yet. |
| def:publicRecordsPolicy | enabled | boolean | no | no | none | Master switch: when false ATM writes no public attested record for this app regardless of per-payment-type visibility. |
| def:publicRecordsPolicy | defaults | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicy | byPaymentType | ref:#publicRecordsPolicyByPaymentType | no | no | none | No description in lexicon yet. |
| def:webhookEventSetting | type | string<app.webhook.test | payment.completed | payment.failed | payment.refunded | payment.refund-updated | payment.disputed | payment.dispute-closed | order.updated | subscription.invoice-paid | subscription.change-updated | subscription.updated | subscription.canceled | subscription.payment-failed | subscription.recovered | pledge.created | pledge.canceled | pledge.converted | pledge.conversion-failed | payer.record.requested | payer.claimed | creator.proof.requested | attestation.updated | product.updated | product.archived | product.deleted | ticket.hold.created | ticket.hold.expired | tickets.issued | ticket.event-canceled | ticket.voided | ticket.released | ticket.refunded | ticket.partial-refund-review | ticket.failed-refund-review | ticket.checked-in | ticket.form-submitted | ticket.waitlist.joined | ticket.waitlist.offered | ticket.collaboration.invited | ticket.collaboration.accepted | ticket.collaboration.revoked | customer.segment.message-requested | recipient.authorization.updated> | yes | no | maxLength:128 | ATM webhook event type, such as payment.completed. |
| def:webhookEventSetting | enabled | boolean | yes | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | tip | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | subscribe | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | shop | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | commission | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:publicRecordsPolicyByPaymentType | ticket | ref:#publicRecordPaymentPolicy | no | no | none | No description in lexicon yet. |
| def:modules | payments | boolean | no | no | none | No description in lexicon yet. |
| def:modules | products | boolean | no | no | none | No description in lexicon yet. |
| def:modules | subscriptions | boolean | no | no | none | No description in lexicon yet. |
| def:modules | pledges | boolean | no | no | none | No description in lexicon yet. |
| def:modules | tickets | boolean | no | no | none | No description in lexicon yet. |
| def:subscriptionPolicy | activeLimit | string<multiple | one-per-payer-recipient> | no | no | maxLength:64 | No description in lexicon yet. |
| def:ticketing | qrPasses | boolean | no | no | none | No description in lexicon yet. |
| def:ticketing | walletPasses | boolean | no | no | none | No description in lexicon yet. |
| def:ticketFee | passToBuyer | boolean | no | no | none | Who pays ATM's configured ticket processing fee. |
| def:payout | holdDays | integer | no | no | minimum:0, maximum:90 | No description in lexicon yet. |
| def:checkout | theme | string<auto | light | dark> | no | no | maxLength:16 | No description in lexicon yet. |
| def:paymentMethods | enabled | array<string<card | link | apple_pay | google_pay | us_bank_account | klarna>> | no | no | maxLength:12 | No description in lexicon yet. |
| def:paymentMethods | disabled | array<string<card | link | apple_pay | google_pay | us_bank_account | klarna>> | no | no | maxLength:12 | No description in lexicon yet. |
| def:paymentMethods | dynamicPaymentMethods | boolean | no | no | none | No description in lexicon yet. |
| def:eventDelivery | transport | string<webhook | xrpc> | no | no | maxLength:16 | No description in lexicon yet. |
| def:eventDelivery | xrpcReceiver | ref:#eventDeliveryXrpcReceiver | no | no | none | No description in lexicon yet. |
| def:eventDeliveryXrpcReceiver | serviceRef | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:eventDeliveryXrpcReceiver | method | string | no | no | maxLength:300, format:nsid | No description in lexicon yet. |
money.atmosphere.app.upsertFeeTier2 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | yes | no | maxLength:8 | No description in lexicon yet. |
| input | feeTier | ref:money.atmosphere.app.defs#feeTier | yes | no | none | No description in lexicon yet. |
money.atmosphere.authCatalog1 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| permission | repo[0] | create | update | delete<money.atmosphere.membership.program | money.atmosphere.membership.tier | money.atmosphere.product | money.atmosphere.price | money.atmosphere.discount | money.atmosphere.discountCode> | yes | no | none | Create, update, and archive Atmosphere Money catalog records. |
money.atmosphere.authProfile1 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| permission | repo[0] | create | update<money.atmosphere.actor.profile> | yes | no | none | Create and update your Atmosphere Money payment profile. |
money.atmosphere.billing.requestKofiMigrationBatch46 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| input | csvText | string | yes | no | maxLength:1000000 | Raw Ko-fi membership CSV. |
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | importSource | string<kofi | substack> | no | no | maxLength:64 | Source platform: Ko-fi (default) or Substack. |
| input | dryRun | boolean | no | no | none | Preview only: parse the CSV and return summary/tiers/warnings WITHOUT persisting a review batch (batch and dashboardUrl are omitted from the response). |
| input | requestedCutoverAt | string | no | no | format:datetime | No description in lexicon yet. |
| input | metadata | unknown | no | no | none | App-private migration context such as app-local creator/list ids. |
| output | dryRun | boolean | no | no | none | True when the request was a dry run: no batch was persisted, so batch and dashboardUrl are omitted. |
| output | batch | ref:#batch | no | no | none | No description in lexicon yet. |
| output | dashboardUrl | string | no | no | format:uri | No description in lexicon yet. |
| output | summary | ref:#previewSummary | yes | no | none | No description in lexicon yet. |
| output | tiers | array<ref:#tierSummary> | yes | no | none | No description in lexicon yet. |
| output | warnings | array<string> | yes | no | none | No description in lexicon yet. |
| def:currencyTotal | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase currency identifier this sum is denominated in. |
| def:currencyTotal | amountMinor | integer | yes | no | minimum:0 | Sum in the currency's smallest unit. |
| def:previewSummary | source | string<kofi | substack> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:previewSummary | totalRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | validRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | activeRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | stripeRows | integer | no | no | minimum:0 | Rows whose source payment method was Stripe. |
| def:previewSummary | paypalRows | integer | no | no | minimum:0 | Rows whose source payment method was PayPal. |
| def:previewSummary | unknownPaymentMethodRows | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | missingEmailRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | duplicateEmailRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | totalAmount | integer | no | no | minimum:0 | Sum in minor units. |
| def:previewSummary | totals | array<ref:#currencyTotal> | no | no | maxLength:20 | Per-currency sums in minor units over rows with an attributed currency. |
| def:previewSummary | currencies | array<string> | yes | no | maxLength:20 | No description in lexicon yet. |
| def:previewSummary | tierCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:tierSummary | tierName | string | yes | no | maxLength:512, maxGraphemes:120 | No description in lexicon yet. |
| def:tierSummary | rowCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:tierSummary | activeCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:tierSummary | stripeCount | integer | no | no | minimum:0 | Rows in this tier whose source payment method was Stripe. |
| def:tierSummary | paypalCount | integer | no | no | minimum:0 | Rows in this tier whose source payment method was PayPal. |
| def:tierSummary | unknownPaymentMethodCount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:tierSummary | totalAmount | integer | no | no | minimum:0 | Sum in minor units. |
| def:tierSummary | totals | array<ref:#currencyTotal> | no | no | maxLength:20 | Per-currency sums in minor units over rows with an attributed currency. |
| def:tierSummary | currencies | array<string> | yes | no | maxLength:20 | No description in lexicon yet. |
| def:batch | id | string | yes | no | maxLength:128 | No description in lexicon yet. |
| def:batch | status | string | yes | no | maxLength:64 | No description in lexicon yet. |
| def:batch | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:batch | importSource | string<kofi | substack> | yes | no | maxLength:64 | No description in lexicon yet. |
| def:batch | migrationPath | string | yes | no | maxLength:128 | No description in lexicon yet. |
| def:batch | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| def:batch | destinationAccountId | string | no | no | maxLength:128 | The creator's ATM connected-account id — the PAN-copy destination the app surfaces to the creator. |
| def:batch | appDid | string | no | no | format:did | No description in lexicon yet. |
| def:batch | requestedCutoverAt | string | no | no | format:datetime | No description in lexicon yet. |
money.atmosphere.billing.requestMigrationBatch55 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| input | rows | array<ref:#subscriberRow> | yes | no | maxLength:50000 | Normalized subscriber rows the app produced from its own export. |
| input | source | string<kofi | substack> | no | no | maxLength:64 | Provenance label for the export (Ko-fi, Substack, …). |
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | dryRun | boolean | no | no | none | Preview only: return summary/tiers/warnings WITHOUT persisting a review batch (batch and dashboardUrl are omitted from the response). |
| input | requestedCutoverAt | string | no | no | format:datetime | No description in lexicon yet. |
| input | metadata | unknown | no | no | none | App-private migration context such as app-local creator/list ids. |
| output | dryRun | boolean | no | no | none | True when the request was a dry run: no batch was persisted, so batch and dashboardUrl are omitted. |
| output | batch | ref:#batch | no | no | none | No description in lexicon yet. |
| output | dashboardUrl | string | no | no | format:uri | No description in lexicon yet. |
| output | summary | ref:#previewSummary | yes | no | none | No description in lexicon yet. |
| output | tiers | array<ref:#tierSummary> | yes | no | none | No description in lexicon yet. |
| output | warnings | array<string> | yes | no | none | No description in lexicon yet. |
| def:currencyTotal | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase currency identifier this sum is denominated in. |
| def:currencyTotal | amountMinor | integer | yes | no | minimum:0 | Sum in the currency's smallest unit. |
| def:previewSummary | source | string<kofi | substack> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:previewSummary | totalRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | validRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | activeRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | stripeRows | integer | no | no | minimum:0 | Rows whose source payment method was Stripe. |
| def:previewSummary | paypalRows | integer | no | no | minimum:0 | Rows whose source payment method was PayPal. |
| def:previewSummary | unknownPaymentMethodRows | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | missingEmailRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | duplicateEmailRows | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:previewSummary | totalAmount | integer | no | no | minimum:0 | Sum in minor units. |
| def:previewSummary | totals | array<ref:#currencyTotal> | no | no | maxLength:20 | Per-currency sums in minor units over rows with an attributed currency. |
| def:previewSummary | currencies | array<string> | yes | no | maxLength:20 | No description in lexicon yet. |
| def:previewSummary | tierCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:tierSummary | tierName | string | yes | no | maxLength:512, maxGraphemes:120 | No description in lexicon yet. |
| def:tierSummary | rowCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:tierSummary | activeCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:tierSummary | stripeCount | integer | no | no | minimum:0 | Rows in this tier whose source payment method was Stripe. |
| def:tierSummary | paypalCount | integer | no | no | minimum:0 | Rows in this tier whose source payment method was PayPal. |
| def:tierSummary | unknownPaymentMethodCount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:tierSummary | totalAmount | integer | no | no | minimum:0 | Sum in minor units. |
| def:tierSummary | totals | array<ref:#currencyTotal> | no | no | maxLength:20 | Per-currency sums in minor units over rows with an attributed currency. |
| def:tierSummary | currencies | array<string> | yes | no | maxLength:20 | No description in lexicon yet. |
| def:subscriberRow | emailHash | string | no | no | maxLength:128 | Lowercase-hex SHA-256 of the trimmed, lowercased subscriber email — the join key to the Stripe PAN-copy customer mapping at cutover. |
| def:subscriberRow | maskedEmail | string | no | no | maxLength:320, maxGraphemes:160 | Display-only masked email such as ad*@example.com. |
| def:subscriberRow | displayName | string | no | no | maxLength:512, maxGraphemes:120 | No description in lexicon yet. |
| def:subscriberRow | status | string | no | no | maxLength:128 | Source-native status text, for display/audit only. |
| def:subscriberRow | active | boolean | yes | no | none | Whether the subscription is currently active. |
| def:subscriberRow | paymentMethod | string<stripe | paypal | unknown> | yes | no | maxLength:32 | Only stripe rows are migratable; paypal/unknown are surfaced for creator review. |
| def:subscriberRow | tierName | string | no | no | maxLength:512, maxGraphemes:120 | No description in lexicon yet. |
| def:subscriberRow | amount | integer | no | no | minimum:0 | Per-subscriber amount in the currency minor unit. |
| def:subscriberRow | currency | string | no | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| def:batch | id | string | yes | no | maxLength:128 | No description in lexicon yet. |
| def:batch | status | string | yes | no | maxLength:64 | No description in lexicon yet. |
| def:batch | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:batch | importSource | string<kofi | substack> | yes | no | maxLength:64 | No description in lexicon yet. |
| def:batch | migrationPath | string | yes | no | maxLength:128 | No description in lexicon yet. |
| def:batch | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| def:batch | destinationAccountId | string | no | no | maxLength:128 | The creator's ATM connected-account id — the PAN-copy destination the app surfaces to the creator. |
| def:batch | appDid | string | no | no | format:did | No description in lexicon yet. |
| def:batch | requestedCutoverAt | string | no | no | format:datetime | No description in lexicon yet. |
money.atmosphere.calendar.getEvent6 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | uri | string | yes | no | maxLength:2048, format:at-uri | No description in lexicon yet. |
| output | event | ref:#indexedEvent | yes | yes | none | No description in lexicon yet. |
| def:indexedEvent | uri | string | yes | no | maxLength:2048, format:at-uri | No description in lexicon yet. |
| def:indexedEvent | cid | string | yes | no | format:cid | No description in lexicon yet. |
| def:indexedEvent | value | unknown | yes | no | none | The public community.lexicon.calendar.event record body as indexed from the repository stream. |
| def:indexedEvent | indexedAt | string | yes | no | format:datetime | When this event version was indexed by the AppView. |
money.atmosphere.calendar.listRsvps17 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | eventUri | string | yes | no | maxLength:2048, format:at-uri | No description in lexicon yet. |
| params | status | string<going | interested | notgoing> | no | no | maxLength:64 | No description in lexicon yet. |
| params | order | string<oldest | recent> | no | no | maxLength:16 | Result order. |
| params | limit | integer | no | no | minimum:1, maximum:200 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:4096 | Opaque cursor from the previous page. |
| output | rsvps | array<ref:#indexedRsvp> | yes | no | maxLength:200 | No description in lexicon yet. |
| output | total | integer | yes | no | minimum:0 | Unique attendees whose latest public RSVP state matches the requested status. |
| output | revision | string | yes | no | maxLength:128 | Opaque event-scoped projection revision shared by every page of one stable read. |
| output | cursor | string | no | no | maxLength:4096 | Opaque cursor to pass back for the next page. |
| def:indexedRsvp | uri | string | yes | no | maxLength:2048, format:at-uri | No description in lexicon yet. |
| def:indexedRsvp | cid | string | yes | no | format:cid | No description in lexicon yet. |
| def:indexedRsvp | did | string | yes | no | format:did | No description in lexicon yet. |
| def:indexedRsvp | status | string<community.lexicon.calendar.rsvp#going | community.lexicon.calendar.rsvp#interested | community.lexicon.calendar.rsvp#notgoing> | yes | no | maxLength:192 | RSVP status ref. |
| def:indexedRsvp | subjectUri | string | yes | no | maxLength:2048, format:at-uri | No description in lexicon yet. |
| def:indexedRsvp | subjectCid | string | yes | no | format:cid | No description in lexicon yet. |
| def:indexedRsvp | createdAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:indexedRsvp | indexedAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.catalog.configureInventory22 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | idempotencyKey | string | yes | no | minLength:1, maxLength:200 | Required ATM app-operation key matching ^[A-Za-z0-9._:/-]+$. |
| input | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| input | product | ref:com.atproto.repo.strongRef | yes | no | none | Exact current root product strongRef. |
| input | variant | ref:com.atproto.repo.strongRef | no | no | none | Optional exact current variant strongRef whose variantOf must bind product's exact URI and CID. |
| input | environment | string<test | live> | yes | no | maxLength:8 | No description in lexicon yet. |
| input | expectedRevision | integer | yes | no | minimum:0, maximum:9007199254740991 | Compare-and-swap fence. |
| input | policy | string<finite | unlimited> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | quantityTotal | integer | no | no | minimum:0, maximum:1000000 | Required for finite policy and omitted for unlimited policy. |
| input | creatorAssertionJwt | string | no | no | minLength:1, maxLength:8192 | Fresh single-use creator service-auth assertion with aud = ATM broker and lxm = money.atmosphere.catalog.configureInventory. |
| output | inventory | ref:#inventoryView | yes | no | none | No description in lexicon yet. |
| def:inventoryView | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| def:inventoryView | productUri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:inventoryView | variantUri | string | no | no | format:at-uri | No description in lexicon yet. |
| def:inventoryView | environment | string<test | live> | yes | no | maxLength:8 | No description in lexicon yet. |
| def:inventoryView | checkoutMode | string<hosted | routed> | yes | no | maxLength:16 | Checkout authority for this inventory row. |
| def:inventoryView | policy | string<finite | unlimited> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:inventoryView | status | string<active | archived> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:inventoryView | revision | integer | yes | no | minimum:1, maximum:9007199254740991 | No description in lexicon yet. |
| def:inventoryView | quantityTotal | integer | yes | yes | minimum:0, maximum:1000000 | No description in lexicon yet. |
| def:inventoryView | quantityReserved | integer | yes | yes | minimum:0, maximum:1000000 | No description in lexicon yet. |
| def:inventoryView | quantitySold | integer | yes | yes | minimum:0, maximum:1000000 | No description in lexicon yet. |
| def:inventoryView | available | integer | yes | yes | minimum:0, maximum:1000000 | Units available to reserve now. |
money.atmosphere.catalog.createProduct15 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| input | sku | string | no | no | maxLength:64 | No description in lexicon yet. |
| input | kind | string<physical | digital | membership | service | support | other> | yes | no | maxLength:32 | Product kind to assign. |
| input | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| input | price | ref:money.atmosphere.catalog.defs#priceInput | no | no | none | No description in lexicon yet. |
| input | inventory | ref:money.atmosphere.catalog.defs#inventoryInput | no | no | none | No description in lexicon yet. |
| input | variantOf | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| input | appProductRef | ref:money.atmosphere.catalog.defs#appProductRef | no | no | none | No description in lexicon yet. |
| input | fulfillmentUrl | string | no | no | format:uri | No description in lexicon yet. |
| input | appLabel | string | no | no | maxLength:800, maxGraphemes:80 | No description in lexicon yet. |
| input | appUrl | string | no | no | format:uri | No description in lexicon yet. |
| input | appIconUrl | string | no | no | format:uri | No description in lexicon yet. |
| output | product | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| output | price | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
money.atmosphere.catalog.defs22 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| def:appProductRef | type | string<shop | commission | membership | membership-tier | custom> | no | no | maxLength:32 | No description in lexicon yet. |
| def:appProductRef | id | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:appProductRef | uri | string | no | no | format:at-uri | No description in lexicon yet. |
| def:appProductRef | cid | string | no | no | format:cid | No description in lexicon yet. |
| def:priceInput | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:priceInput | unitAmount | integer | no | no | minimum:0 | Amount in the smallest currency unit. |
| def:priceInput | type | string<one-time | recurring> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:priceInput | recurring | ref:#recurringInput | no | no | none | No description in lexicon yet. |
| def:priceInput | customUnitAmount | ref:#customUnitAmountInput | no | no | none | No description in lexicon yet. |
| def:priceInput | billingScheme | string<per-unit | tiered> | no | no | maxLength:32 | No description in lexicon yet. |
| def:priceInput | tiersMode | string<graduated | volume> | no | no | maxLength:32 | No description in lexicon yet. |
| def:priceInput | tiers | array<ref:#tierInput> | no | no | maxLength:100 | No description in lexicon yet. |
| def:recurringInput | interval | string<day | week | month | year> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:recurringInput | intervalCount | integer | no | no | minimum:1, maximum:1095 | Number of interval units between billings. |
| def:customUnitAmountInput | enabled | boolean | yes | no | none | No description in lexicon yet. |
| def:customUnitAmountInput | minimum | integer | no | no | minimum:1 | No description in lexicon yet. |
| def:customUnitAmountInput | maximum | integer | no | no | minimum:1 | No description in lexicon yet. |
| def:tierInput | upTo | integer | no | no | minimum:1 | Inclusive upper quantity bound for this tier. |
| def:tierInput | unitAmount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:tierInput | flatAmount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:inventoryInput | trackInventory | boolean | yes | no | none | No description in lexicon yet. |
| def:inventoryInput | quantityTotal | integer | no | no | minimum:0, maximum:1000000 | No description in lexicon yet. |
money.atmosphere.catalog.getInventory16 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | productUri | string | yes | no | format:at-uri | Current root product AT-URI. |
| params | variantUri | string | no | no | format:at-uri | Optional current variant AT-URI whose variantOf must bind productUri's exact current URI and CID. |
| params | environment | string<test | live> | yes | no | maxLength:8 | No description in lexicon yet. |
| output | inventory | ref:#inventoryView | yes | no | none | No description in lexicon yet. |
| def:inventoryView | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| def:inventoryView | productUri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:inventoryView | variantUri | string | no | no | format:at-uri | No description in lexicon yet. |
| def:inventoryView | environment | string<test | live> | yes | no | maxLength:8 | No description in lexicon yet. |
| def:inventoryView | checkoutMode | string<hosted | routed> | yes | no | maxLength:16 | Checkout authority for this inventory row. |
| def:inventoryView | policy | string<finite | unlimited> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:inventoryView | status | string<active | archived> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:inventoryView | revision | integer | yes | no | minimum:1, maximum:9007199254740991 | No description in lexicon yet. |
| def:inventoryView | quantityTotal | integer | yes | yes | minimum:0, maximum:1000000 | No description in lexicon yet. |
| def:inventoryView | quantityReserved | integer | yes | yes | minimum:0, maximum:1000000 | No description in lexicon yet. |
| def:inventoryView | quantitySold | integer | yes | yes | minimum:0, maximum:1000000 | No description in lexicon yet. |
| def:inventoryView | available | integer | yes | yes | minimum:0, maximum:1000000 | Units available to reserve now. |
money.atmosphere.catalog.getProduct35 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| output | product | ref:#catalogProduct | yes | yes | none | No description in lexicon yet. |
| def:catalogPrice | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:catalogPrice | cid | string | yes | no | format:cid | No description in lexicon yet. |
| def:catalogPrice | lookupKey | string | no | no | maxLength:200 | No description in lexicon yet. |
| def:catalogPrice | nickname | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:catalogPrice | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:catalogPrice | unitAmount | integer | no | no | minimum:0 | Amount in the smallest currency unit. |
| def:catalogPrice | customUnitAmount | ref:#catalogPriceCustomUnitAmount | no | no | none | No description in lexicon yet. |
| def:catalogPrice | billingScheme | string<per-unit | tiered> | no | no | maxLength:32 | No description in lexicon yet. |
| def:catalogPrice | tiersMode | string<graduated | volume> | no | no | maxLength:32 | No description in lexicon yet. |
| def:catalogPrice | tiers | array<ref:money.atmosphere.price#tier> | no | no | maxLength:100 | No description in lexicon yet. |
| def:catalogPrice | type | string<one-time | recurring> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:catalogPrice | recurring | ref:#catalogPriceRecurring | no | no | none | No description in lexicon yet. |
| def:catalogPrice | archived | boolean | yes | no | none | No description in lexicon yet. |
| def:catalogPrice | createdAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:catalogProduct | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:catalogProduct | cid | string | yes | no | format:cid | No description in lexicon yet. |
| def:catalogProduct | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:catalogProduct | sku | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:catalogProduct | defaultPrice | ref:#catalogPrice | no | no | none | No description in lexicon yet. |
| def:catalogProduct | kind | string<physical | digital | commission | membership | service | ticket | support | other> | yes | no | maxLength:32 | Open product classification copied from the indexed public record. |
| def:catalogProduct | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| def:catalogProduct | imageUrl | string | no | no | format:uri | No description in lexicon yet. |
| def:catalogProduct | variantOf | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:catalogProduct | archived | boolean | yes | no | none | No description in lexicon yet. |
| def:catalogProduct | archivedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:catalogProduct | createdAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:catalogProduct | indexedAt | string | yes | no | format:datetime | When the AppView indexed this product. |
| def:catalogProduct | salesCount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:catalogPriceCustomUnitAmount | enabled | boolean | yes | no | none | No description in lexicon yet. |
| def:catalogPriceCustomUnitAmount | minimum | integer | no | no | minimum:1 | No description in lexicon yet. |
| def:catalogPriceCustomUnitAmount | maximum | integer | no | no | minimum:1 | No description in lexicon yet. |
| def:catalogPriceRecurring | interval | string<day | week | month | year> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:catalogPriceRecurring | intervalCount | integer | no | no | minimum:1, maximum:1095 | Absent means 1 (matching Stripe Price.recurring.interval_count). |
money.atmosphere.catalog.listDiscountCodes24 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | creators | array<string> | yes | no | minLength:1, maxLength:50 | No description in lexicon yet. |
| params | includeDisabled | boolean | no | no | none | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | codes | array<ref:#catalogDiscountCode> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:catalogDiscountCode | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:catalogDiscountCode | cid | string | yes | no | format:cid | No description in lexicon yet. |
| def:catalogDiscountCode | creatorDid | string | yes | no | format:did | The repo DID that authored this discount-code record (the creator). |
| def:catalogDiscountCode | code | string | yes | no | maxLength:64 | No description in lexicon yet. |
| def:catalogDiscountCode | name | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:catalogDiscountCode | discountUri | string | no | no | format:at-uri | No description in lexicon yet. |
| def:catalogDiscountCode | discountCid | string | no | no | format:cid | No description in lexicon yet. |
| def:catalogDiscountCode | percentOffBps | integer | no | no | minimum:1, maximum:10000 | No description in lexicon yet. |
| def:catalogDiscountCode | amountOff | ref:#catalogDiscountAmountOff | no | no | none | No description in lexicon yet. |
| def:catalogDiscountCode | duration | string<once | forever | repeating> | no | no | maxLength:16 | No description in lexicon yet. |
| def:catalogDiscountCode | durationInMonths | integer | no | no | minimum:1, maximum:36 | No description in lexicon yet. |
| def:catalogDiscountCode | maxRedemptions | integer | no | no | minimum:1 | Public configured redemption cap from the record. |
| def:catalogDiscountCode | redeemBy | string | no | no | format:datetime | No description in lexicon yet. |
| def:catalogDiscountCode | disabled | boolean | yes | no | none | Whether the offer is disabled (inverse of the indexed active state). |
| def:catalogDiscountCode | createdAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:catalogDiscountCode | indexedAt | string | no | no | format:datetime | When the AppView indexed this discount code. |
| def:catalogDiscountAmountOff | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:catalogDiscountAmountOff | unitAmount | integer | yes | no | minimum:1 | No description in lexicon yet. |
money.atmosphere.catalog.listPrices27 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | offerUri | string | yes | no | format:at-uri | No description in lexicon yet. |
| params | includeArchived | boolean | no | no | none | No description in lexicon yet. |
| params | type | string<one-time | recurring> | no | no | maxLength:16 | No description in lexicon yet. |
| params | currency | string | no | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | prices | array<ref:#catalogPrice> | yes | no | maxLength:100 | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:catalogPrice | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:catalogPrice | cid | string | yes | no | format:cid | No description in lexicon yet. |
| def:catalogPrice | lookupKey | string | no | no | maxLength:200 | No description in lexicon yet. |
| def:catalogPrice | nickname | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:catalogPrice | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:catalogPrice | unitAmount | integer | no | no | minimum:0 | Amount in the smallest currency unit. |
| def:catalogPrice | customUnitAmount | ref:#catalogPriceCustomUnitAmount | no | no | none | No description in lexicon yet. |
| def:catalogPrice | billingScheme | string<per-unit | tiered> | no | no | maxLength:32 | No description in lexicon yet. |
| def:catalogPrice | tiersMode | string<graduated | volume> | no | no | maxLength:32 | No description in lexicon yet. |
| def:catalogPrice | tiers | array<ref:money.atmosphere.price#tier> | no | no | maxLength:100 | No description in lexicon yet. |
| def:catalogPrice | type | string<one-time | recurring> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:catalogPrice | recurring | ref:#catalogPriceRecurring | no | no | none | No description in lexicon yet. |
| def:catalogPrice | archived | boolean | yes | no | none | No description in lexicon yet. |
| def:catalogPrice | createdAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:catalogPriceCustomUnitAmount | enabled | boolean | yes | no | none | No description in lexicon yet. |
| def:catalogPriceCustomUnitAmount | minimum | integer | no | no | minimum:1 | No description in lexicon yet. |
| def:catalogPriceCustomUnitAmount | maximum | integer | no | no | minimum:1 | No description in lexicon yet. |
| def:catalogPriceRecurring | interval | string<day | week | month | year> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:catalogPriceRecurring | intervalCount | integer | no | no | minimum:1, maximum:1095 | Absent means 1 (matching Stripe Price.recurring.interval_count). |
money.atmosphere.catalog.listProducts42 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | creator | string | yes | no | format:at-identifier | DID or handle of the creator. |
| params | includeVariants | boolean | no | no | none | No description in lexicon yet. |
| params | includeArchived | boolean | no | no | none | No description in lexicon yet. |
| params | kind | string<physical | digital | commission | membership | service | ticket | support | other> | no | no | maxLength:32 | Optional exact product-kind filter. |
| params | withSalesCounts | boolean | no | no | none | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | products | array<ref:#catalogProduct> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:catalogPrice | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:catalogPrice | cid | string | yes | no | format:cid | No description in lexicon yet. |
| def:catalogPrice | lookupKey | string | no | no | maxLength:200 | No description in lexicon yet. |
| def:catalogPrice | nickname | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:catalogPrice | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:catalogPrice | unitAmount | integer | no | no | minimum:0 | Amount in the smallest currency unit. |
| def:catalogPrice | customUnitAmount | ref:#catalogPriceCustomUnitAmount | no | no | none | No description in lexicon yet. |
| def:catalogPrice | billingScheme | string<per-unit | tiered> | no | no | maxLength:32 | No description in lexicon yet. |
| def:catalogPrice | tiersMode | string<graduated | volume> | no | no | maxLength:32 | No description in lexicon yet. |
| def:catalogPrice | tiers | array<ref:money.atmosphere.price#tier> | no | no | maxLength:100 | No description in lexicon yet. |
| def:catalogPrice | type | string<one-time | recurring> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:catalogPrice | recurring | ref:#catalogPriceRecurring | no | no | none | No description in lexicon yet. |
| def:catalogPrice | archived | boolean | yes | no | none | No description in lexicon yet. |
| def:catalogPrice | createdAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:catalogProduct | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:catalogProduct | cid | string | yes | no | format:cid | No description in lexicon yet. |
| def:catalogProduct | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:catalogProduct | sku | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:catalogProduct | defaultPrice | ref:#catalogPrice | no | no | none | No description in lexicon yet. |
| def:catalogProduct | kind | string<physical | digital | commission | membership | service | ticket | support | other> | yes | no | maxLength:32 | Open product classification copied from the indexed public record. |
| def:catalogProduct | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| def:catalogProduct | imageUrl | string | no | no | format:uri | No description in lexicon yet. |
| def:catalogProduct | variantOf | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:catalogProduct | archived | boolean | yes | no | none | No description in lexicon yet. |
| def:catalogProduct | archivedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:catalogProduct | createdAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:catalogProduct | indexedAt | string | yes | no | format:datetime | When the AppView indexed this product. |
| def:catalogProduct | salesCount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:catalogPriceCustomUnitAmount | enabled | boolean | yes | no | none | No description in lexicon yet. |
| def:catalogPriceCustomUnitAmount | minimum | integer | no | no | minimum:1 | No description in lexicon yet. |
| def:catalogPriceCustomUnitAmount | maximum | integer | no | no | minimum:1 | No description in lexicon yet. |
| def:catalogPriceRecurring | interval | string<day | week | month | year> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:catalogPriceRecurring | intervalCount | integer | no | no | minimum:1, maximum:1095 | Absent means 1 (matching Stripe Price.recurring.interval_count). |
money.atmosphere.catalog.registerAppLink20 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| input | product | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| input | appProductRef | ref:#appProductRef | no | no | none | No description in lexicon yet. |
| input | fulfillmentUrl | string | no | no | format:uri | No description in lexicon yet. |
| input | appLabel | string | no | no | maxLength:800, maxGraphemes:80 | No description in lexicon yet. |
| input | appUrl | string | no | no | format:uri | No description in lexicon yet. |
| input | appIconUrl | string | no | no | format:uri | No description in lexicon yet. |
| input | environment | string<test | live> | no | no | maxLength:16 | ATM app environment for this private fulfillment link. |
| input | role | string<fulfillment | storefront | analytics> | no | no | maxLength:32 | No description in lexicon yet. |
| input | status | string<active | archived> | no | no | maxLength:32 | No description in lexicon yet. |
| input | sourceUpdatedAt | string | no | no | maxLength:64, format:datetime | Optional caller-owned app-link generation for the canonical payload, which includes the exact Product strongRef and therefore requires a newer timestamp for every Product CID rotation even when the sidecar fields are unchanged. |
| input | createOnly | boolean | no | no | none | When true, atomically insert only if no link exists for this product, app, and environment. |
| output | ok | boolean | yes | no | none | No description in lexicon yet. |
| output | created | boolean | no | no | none | True when this call inserted a new link. |
| output | applied | boolean | no | no | none | True when this call inserted or updated the row. |
| output | sourceUpdatedAt | string | no | no | maxLength:64, format:datetime | The source generation currently stored for the row, when it is versioned. |
| def:appProductRef | type | string<shop | commission | membership | membership-tier | custom> | no | no | maxLength:32 | No description in lexicon yet. |
| def:appProductRef | id | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:appProductRef | uri | string | no | no | format:at-uri | No description in lexicon yet. |
| def:appProductRef | cid | string | no | no | format:cid | No description in lexicon yet. |
money.atmosphere.catalog.updateProduct18 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | product | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| input | title | string | no | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| input | sku | string | no | no | maxLength:64 | No description in lexicon yet. |
| input | kind | string | no | no | maxLength:32 | Replacement product kind. |
| input | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| input | price | ref:money.atmosphere.catalog.defs#priceInput | no | no | none | Deprecated and rejected with PriceMutationUnavailable. |
| input | inventory | ref:money.atmosphere.catalog.defs#inventoryInput | no | no | none | Deprecated and rejected with InventoryMutationMoved. |
| input | archived | boolean | no | no | none | Set true to archive the product (removed from new-sale surfaces, still resolvable), false to unarchive. |
| input | appProductRef | ref:money.atmosphere.catalog.defs#appProductRef | no | no | none | Deprecated and rejected with LinkMutationMoved. |
| input | fulfillmentUrl | string | no | no | format:uri | Deprecated and rejected with LinkMutationMoved. |
| input | appLabel | string | no | no | maxLength:800, maxGraphemes:80 | Deprecated and rejected with LinkMutationMoved. |
| input | appUrl | string | no | no | format:uri | Deprecated and rejected with LinkMutationMoved. |
| input | appIconUrl | string | no | no | format:uri | Deprecated and rejected with LinkMutationMoved. |
| input | linkStatus | string<active | archived> | no | no | maxLength:32 | Deprecated and rejected with LinkMutationMoved. |
| input | linkSourceUpdatedAt | string | no | no | maxLength:64, format:datetime | Deprecated and rejected with LinkMutationMoved. |
| output | product | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| output | price | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
money.atmosphere.discount16 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | name | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| record | percentOffBps | integer | no | no | minimum:1, maximum:10000 | Percentage discount in basis points. |
| record | amountOff | ref:#amountOff | no | no | none | No description in lexicon yet. |
| record | duration | string<once | forever | repeating> | no | no | maxLength:16 | Stripe-compatible discount duration. |
| record | durationInMonths | integer | no | no | minimum:1 | Required when duration is repeating. |
| record | appliesTo | ref:#appliesTo | no | no | none | No description in lexicon yet. |
| record | maxRedemptions | integer | no | no | minimum:1 | No description in lexicon yet. |
| record | redeemBy | string | no | no | format:datetime | No description in lexicon yet. |
| record | disabled | boolean | no | no | none | No description in lexicon yet. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| record | updatedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:amountOff | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| def:amountOff | unitAmount | integer | yes | no | minimum:1 | Amount off in the smallest currency unit. |
| def:appliesTo | productUris | array<string> | no | no | maxLength:200 | ATM product URIs this discount can apply to. |
| def:appliesTo | priceUris | array<string> | no | no | maxLength:200 | ATM price URIs this discount can apply to. |
| def:appliesTo | ticketTypeUris | array<string> | no | no | maxLength:200 | Atmosphere Tickets ticket type URIs this discount can apply to. |
money.atmosphere.discountCode13 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | discount | ref:com.atproto.repo.strongRef | yes | no | none | StrongRef to the money.atmosphere.discount this code redeems. |
| record | code | string | yes | no | maxLength:64 | Customer-facing code. |
| record | name | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| record | restrictions | ref:#restrictions | no | no | none | No description in lexicon yet. |
| record | maxRedemptions | integer | no | no | minimum:1 | No description in lexicon yet. |
| record | redeemBy | string | no | no | format:datetime | No description in lexicon yet. |
| record | disabled | boolean | no | no | none | No description in lexicon yet. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| record | updatedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:restrictions | firstTimeTransaction | boolean | no | no | none | Stripe-compatible first-time transaction restriction. |
| def:restrictions | minimumAmount | ref:#restrictionsMinimumAmount | no | no | none | No description in lexicon yet. |
| def:restrictionsMinimumAmount | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| def:restrictionsMinimumAmount | unitAmount | integer | yes | no | minimum:1 | Minimum payment amount in the smallest currency unit. |
money.atmosphere.event.defs370 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| def:commerceOrderFulfillment | mode | string<app-managed | atm-managed> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:commerceOrderFulfillment | ownerAppDid | string | yes | no | format:did | No description in lexicon yet. |
| def:commerceOrderFulfillment | workflow | string<automatic | manual> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:commerceOrderFulfillment | managementUrl | string | no | no | maxLength:2048, format:uri | No description in lexicon yet. |
| def:commerceOrderRouting | version | integer | yes | no | minimum:1, maximum:1 | No description in lexicon yet. |
| def:commerceOrderRouting | kind | string<shop | commission> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:commerceOrderRouting | clientOrderId | string | yes | no | maxLength:200 | No description in lexicon yet. |
| def:commerceOrderRouting | salesChannelAppDid | string | yes | no | format:did | No description in lexicon yet. |
| def:commerceOrderRouting | fulfillment | ref:#commerceOrderFulfillment | yes | no | none | No description in lexicon yet. |
| def:commerceOrderRouting | inventoryAuthority | string<app | atm> | yes | no | maxLength:8 | No description in lexicon yet. |
| def:commerceOrderRouting | inventoryPolicy | string<finite | unlimited> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:commerceOrder | id | string | yes | no | maxLength:128 | No description in lexicon yet. |
| def:commerceOrder | originatorDid | string | yes | no | format:did | Originating app identity, equal to routing.salesChannelAppDid for this payment. |
| def:commerceOrder | revision | integer | yes | no | minimum:1, maximum:9007199254740991 | No description in lexicon yet. |
| def:commerceOrder | routing | ref:#commerceOrderRouting | yes | no | none | No description in lexicon yet. |
| def:commerceOrder | financialStatus | string<not-required | pending | paid | partially-refunded | refunded | disputed | chargeback | failed | canceled> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:commerceOrder | fulfillmentStatus | string<unfulfilled | ready | on-hold | processing | partially-fulfilled | fulfilled | failed | canceled> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:commerceOrder | fulfillmentStateCause | string<processor-review | payment-failed | payment-disputed | payment-refunded | payment-canceled | payment-chargeback | inventory-capacity-conflict | app-update | recipient-update> | yes | yes | maxLength:32 | Authority that most recently authored the fulfillment state. |
| def:payment | id | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:payment | originatorDid | string | no | no | format:did | No description in lexicon yet. |
| def:payment | paymentType | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:payment | amount | integer | no | no | none | No description in lexicon yet. |
| def:payment | currency | string | no | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:payment | status | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:payment | payerDid | string | no | no | format:did | No description in lexicon yet. |
| def:payment | recipientDid | string | no | no | format:did | No description in lexicon yet. |
| def:payment | metadata | unknown | no | no | none | Sanitized app-private display context. |
| def:payment | listing | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:payment | entitlements | array<ref:com.atproto.repo.strongRef> | no | no | none | No description in lexicon yet. |
| def:payment | order | ref:#commerceOrder | no | no | none | Canonical revision-fenced order control block for this exact destination app and environment. |
| def:subscriptionChangeOffer | program | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:subscriptionChangeOffer | tier | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| def:subscriptionChangeOffer | product | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:subscriptionChangeOffer | price | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| def:subscriptionChangeOffer | amount | integer | yes | no | minimum:0 | Recurring amount in the smallest currency unit. |
| def:subscriptionChangeProjection | lifecycleGeneration | integer | yes | no | minimum:1 | Monotonic generation of the processor lifecycle that authored this projection. |
| def:subscriptionChangeProjection | side | string<source | target> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:subscriptionChangeProjection | accessAuthorized | boolean | yes | no | none | No description in lexicon yet. |
| def:subscriptionChangeProjection | state | string<converged | blocked | reconciling> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:subscriptionChangeProjection | authorityInvoiceId | string | yes | no | maxLength:256 | Exact processor invoice whose observed lifecycle authorizes this projection. |
| def:subscriptionChange | id | string | yes | no | maxLength:128 | No description in lexicon yet. |
| def:subscriptionChange | subscriptionId | string | yes | no | maxLength:256 | Durable ATM subscriptions.id relationship key. |
| def:subscriptionChange | environment | string<live | test> | yes | no | maxLength:16 | ATM app environment for this durable relationship change. |
| def:subscriptionChange | status | string<quoted | awaiting-confirmation | awaiting-payment | action-required | scheduled | paid-pending-apply | applied | failed | canceled | superseded | expired> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:subscriptionChange | direction | string<upgrade | downgrade | lateral> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:subscriptionChange | changeRevision | integer | yes | no | minimum:1 | Monotonic revision of this change lifecycle. |
| def:subscriptionChange | subscriptionRevision | integer | yes | no | minimum:1 | Relationship revision the change targets, or the applied relationship revision once effective. |
| def:subscriptionChange | from | ref:#subscriptionChangeOffer | yes | no | none | No description in lexicon yet. |
| def:subscriptionChange | to | ref:#subscriptionChangeOffer | yes | no | none | No description in lexicon yet. |
| def:subscriptionChange | amountDueNow | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:subscriptionChange | creditNow | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:subscriptionChange | nextRecurringAmount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:subscriptionChange | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:subscriptionChange | effectiveAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | nextChargeAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | expiresAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | effectiveInvoiceId | string | no | no | maxLength:256 | Exact paid invoice that made this change effective. |
| def:subscriptionChange | failureCode | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:subscriptionChange | projection | ref:#subscriptionChangeProjection | no | no | none | No description in lexicon yet. |
| def:invoice | id | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:invoice | subscriptionId | string | no | no | maxLength:256 | Durable ATM subscriptions.id this invoice belongs to. |
| def:invoice | processorSubscriptionId | string | no | no | maxLength:256 | Processor subscription object id (e.g. |
| def:invoice | amount | integer | no | no | none | Legacy recurring plan amount in the smallest currency unit. |
| def:invoice | amountPaid | integer | no | no | minimum:0 | Actual amount settled for this invoice cycle, in the smallest currency unit. |
| def:invoice | recurringAmount | integer | no | no | minimum:0 | Recurring plan amount associated with the subscription for this cycle, in the smallest currency unit. |
| def:invoice | currency | string | no | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:invoice | paidAt | string | no | no | format:datetime | When the processor marked this invoice cycle paid. |
| def:invoice | firstInvoice | boolean | no | no | none | No description in lexicon yet. |
| def:invoice | change | ref:#subscriptionChange | no | no | none | The applied membership tier change when this exact paid invoice made it effective. |
| def:subscription | id | string | yes | no | maxLength:256 | Durable ATM subscriptions.id. |
| def:subscription | status | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:subscription | processorSubscriptionId | string | no | no | maxLength:256 | Processor subscription object id (e.g. |
| def:subscription | metadata | unknown | no | no | none | Sanitized app-private display context. |
| def:actorSummary | actor | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:actorSummary | did | string | no | no | format:did | No description in lexicon yet. |
| def:ticketHold | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketHold | eventId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:ticketHold | paymentId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:ticketHold | status | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:ticketHold | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:ticketHold | amount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:ticketHold | currency | string | no | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:ticketHold | quantityTotal | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:ticketHold | items | array<ref:#ticketHoldItem> | no | no | none | No description in lexicon yet. |
| def:ticketHoldItem | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketHoldItem | title | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:ticketHoldItem | quantity | integer | no | no | none | No description in lexicon yet. |
| def:ticketHoldItem | unitAmount | integer | no | no | none | No description in lexicon yet. |
| def:ticketHoldItem | currency | string | no | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:restoredDisputeCycle | disputeId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:restoredDisputeCycle | invoiceId | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:restoredDisputeCycle | distributionsReinstated | boolean | yes | no | none | No description in lexicon yet. |
| def:issuedTicket | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | eventId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | ticketTypeId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | paymentId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | claimId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| def:issuedTicket | ownerDid | string | no | no | format:did | No description in lexicon yet. |
| def:issuedTicket | status | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:issuedTicket | ticketNumber | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | scanToken | string | no | no | maxLength:4000 | No description in lexicon yet. |
| def:issuedTicket | scanUrl | string | no | no | maxLength:2000, format:uri | No description in lexicon yet. |
| def:issuedTicket | createdAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:issuedTicket | updatedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:ticketIssuanceSummary | holdId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketIssuanceSummary | count | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketIssuanceSummary | alreadyIssued | boolean | no | no | none | No description in lexicon yet. |
| def:ticketCheckIn | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketCheckIn | checkInListId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:ticketCheckIn | scannerDid | string | no | no | format:did | No description in lexicon yet. |
| def:ticketCheckIn | checkedInAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:product | uri | string | yes | no | maxLength:1024, format:at-uri | No description in lexicon yet. |
| def:product | cid | string | no | no | format:cid | No description in lexicon yet. |
| def:appProductRef | type | string | no | no | maxLength:32 | No description in lexicon yet. |
| def:appProductRef | id | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:appProductRef | uri | string | no | no | maxLength:1024, format:at-uri | No description in lexicon yet. |
| def:appProductRef | cid | string | no | no | format:cid | No description in lexicon yet. |
| def:productAppLink | productUri | string | yes | no | maxLength:1024, format:at-uri | No description in lexicon yet. |
| def:productAppLink | appDid | string | yes | no | format:did | No description in lexicon yet. |
| def:productAppLink | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| def:productAppLink | appProductRef | ref:#appProductRef | no | no | none | No description in lexicon yet. |
| def:productAppLink | fulfillmentUrl | string | no | no | maxLength:1024, format:uri | No description in lexicon yet. |
| def:productAppLink | label | string | no | no | maxLength:800 | No description in lexicon yet. |
| def:productAppLink | url | string | no | no | maxLength:1024, format:uri | No description in lexicon yet. |
| def:productAppLink | iconUrl | string | no | no | maxLength:1024, format:uri | No description in lexicon yet. |
| def:productAppLink | role | string | no | no | maxLength:32 | No description in lexicon yet. |
| def:productAppLink | status | string | no | no | maxLength:32 | No description in lexicon yet. |
| def:attestation | revision | integer | yes | no | minimum:0 | Monotonic per-payment revision. |
| def:attestation | cid | string | no | no | format:cid | No description in lexicon yet. |
| def:attestation | policy | ref:#attestationPolicy | no | no | none | No description in lexicon yet. |
| def:attestation | disabledReason | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:distribution | planned | integer | yes | no | minimum:0 | Number of ATM contractual revenue-share distributions payable to the app that were planned for this payment event. |
| def:appWebhookTest | message | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:paymentCompleted | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:paymentCompleted | distribution | ref:#distribution | no | no | none | No description in lexicon yet. |
| def:paymentCompleted | tickets | ref:#ticketIssuanceSummary | no | no | none | No description in lexicon yet. |
| def:paymentCompleted | attestation | ref:#attestation | no | no | none | No description in lexicon yet. |
| def:paymentCompleted | attestationPending | boolean | no | no | none | True when settlement and fulfillment completed while public proof publication remains queued for durable reconciliation. |
| def:paymentFailed | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:paymentFailed | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:paymentRefunded | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:paymentRefunded | invoiceId | string | no | no | maxLength:256 | Exact processor invoice cycle affected when the payment is a reusable subscription relationship. |
| def:paymentRefunded | amount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:paymentRefunded | amountRefundedTotal | integer | no | no | minimum:0 | Cumulative refunded amount for the exact invoice cycle when invoiceId is present; otherwise for the payment, in the smallest currency unit. |
| def:paymentRefunded | partial | boolean | no | no | none | True when the payment is only partially refunded so far. |
| def:paymentRefunded | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:paymentRefunded | refundPreservesTicketEntitlements | boolean | no | no | none | True only when this refund must not revoke ATM ticket entitlements. |
| def:paymentRefunded | distribution | ref:#distribution | no | no | none | No description in lexicon yet. |
| def:paymentRefundUpdated | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:paymentRefundUpdated | invoiceId | string | no | no | maxLength:256 | Exact processor invoice cycle affected when the payment is a reusable subscription relationship. |
| def:paymentRefundUpdated | refundId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:paymentRefundUpdated | status | string<pending | succeeded | failed | canceled | requires-action> | yes | no | maxLength:64 | No description in lexicon yet. |
| def:paymentRefundUpdated | amount | integer | yes | no | minimum:0 | Amount of this refund in the smallest currency unit. |
| def:paymentRefundUpdated | amountRefundedTotal | integer | yes | no | minimum:0 | Cumulative refunded amount for the exact invoice cycle when invoiceId is present; otherwise for the payment, in the smallest currency unit. |
| def:paymentRefundUpdated | partial | boolean | yes | no | none | True when the payment is only partially refunded so far. |
| def:paymentRefundUpdated | applicationFeeRefunded | boolean | yes | no | none | True when ATM's own application fee was refunded alongside this refund. |
| def:paymentRefundUpdated | refundPreservesTicketEntitlements | boolean | no | no | none | True only when the aggregate refund authority preserves ATM ticket entitlements. |
| def:paymentRefundUpdated | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:paymentDisputed | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:paymentDisputed | invoiceId | string | no | no | maxLength:256 | Exact processor invoice cycle affected when the payment is a reusable subscription relationship. |
| def:paymentDisputed | disputeId | string | no | no | maxLength:256 | Exact processor dispute object for this lifecycle. |
| def:paymentDisputed | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:paymentDisputed | disputeReason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:paymentDisputed | status | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:paymentDisputed | distribution | ref:#distribution | no | no | none | No description in lexicon yet. |
| def:paymentDisputeClosed | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:paymentDisputeClosed | invoiceId | string | no | no | maxLength:256 | Exact processor invoice cycle affected when the payment is a reusable subscription relationship. |
| def:paymentDisputeClosed | disputeId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:paymentDisputeClosed | outcome | string<won | lost | warning-closed> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:paymentDisputeClosed | status | string | yes | no | maxLength:64 | No description in lexicon yet. |
| def:paymentDisputeClosed | distributionsReinstated | boolean | no | no | none | True when ATM revenue-share distributions payable to the app and reversed at dispute creation were reinstated after a won dispute. |
| def:paymentDisputeClosed | restoredDisputeCycles | array<ref:#restoredDisputeCycle> | no | no | maxLength:100 | Earlier won cycles whose deferred ATM revenue-share distributions payable to the app became restorable when this dispute closed. |
| def:orderUpdated | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:subscriptionInvoicePaid | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:subscriptionInvoicePaid | invoice | ref:#invoice | yes | no | none | No description in lexicon yet. |
| def:subscriptionInvoicePaid | invoiceId | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:subscriptionInvoicePaid | distribution | ref:#distribution | no | no | none | No description in lexicon yet. |
| def:subscriptionInvoicePaid | attestation | ref:#attestation | no | no | none | No description in lexicon yet. |
| def:subscriptionInvoicePaid | attestationPending | boolean | no | no | none | True when the paid invoice completed while public proof publication remains queued for durable reconciliation. |
| def:subscriptionChangeUpdated | change | ref:#subscriptionChange | yes | no | none | No description in lexicon yet. |
| def:subscriptionUpdated | subscription | ref:#subscription | yes | no | none | No description in lexicon yet. |
| def:subscriptionUpdated | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:subscriptionUpdated | previousPayment | ref:#payment | no | no | none | No description in lexicon yet. |
| def:subscriptionUpdated | processorSubscriptionId | string | no | no | maxLength:256 | Processor subscription object id (e.g. |
| def:subscriptionUpdated | priorAmount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:subscriptionUpdated | amount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:subscriptionUpdated | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:subscriptionUpdated | updatedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:subscriptionUpdated | currentPeriodEnd | string | no | no | format:datetime | No description in lexicon yet. |
| def:subscriptionUpdated | updatedBy | ref:#actorSummary | no | no | none | No description in lexicon yet. |
| def:subscriptionUpdated | attestation | ref:#attestation | no | no | none | No description in lexicon yet. |
| def:subscriptionCanceled | subscription | ref:#subscription | yes | no | none | No description in lexicon yet. |
| def:subscriptionCanceled | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:subscriptionCanceled | processorSubscriptionId | string | no | no | maxLength:256 | Processor subscription object id (e.g. |
| def:subscriptionCanceled | canceledAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:subscriptionCanceled | canceledBy | ref:#actorSummary | no | no | none | No description in lexicon yet. |
| def:subscriptionCanceled | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:subscriptionPaymentFailed | subscription | ref:#subscription | yes | no | none | No description in lexicon yet. |
| def:subscriptionPaymentFailed | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:subscriptionPaymentFailed | processorSubscriptionId | string | no | no | maxLength:256 | Processor subscription object id (e.g. |
| def:subscriptionPaymentFailed | invoiceId | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:subscriptionPaymentFailed | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:subscriptionPaymentFailed | hostedInvoiceUrl | string | no | no | maxLength:2000, format:uri | Hosted Stripe invoice URL for the SCA/authentication-required case, so apps can link the buyer to complete 3DS re-authentication. |
| def:subscriptionPaymentFailed | failedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:subscriptionRecovered | subscription | ref:#subscription | yes | no | none | No description in lexicon yet. |
| def:subscriptionRecovered | payment | ref:#payment | yes | no | none | No description in lexicon yet. |
| def:subscriptionRecovered | processorSubscriptionId | string | no | no | maxLength:256 | Processor subscription object id (e.g. |
| def:subscriptionRecovered | invoiceId | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:subscriptionRecovered | recoveredAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:pledge | id | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:pledge | recipientDid | string | yes | no | format:did | No description in lexicon yet. |
| def:pledge | payerDid | string | no | no | format:did | Present only for signed-in pledgers; guest pledges omit it. |
| def:pledge | amount | integer | yes | no | minimum:1 | No description in lexicon yet. |
| def:pledge | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:pledge | interval | string<month | quarter | year> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:pledge | tierLabel | string | no | no | maxLength:200 | No description in lexicon yet. |
| def:pledge | subscriptionGroupKey | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:pledge | listing | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:pledge | status | string<pending-setup | active | converting | converted | canceled | superseded | failed | expired> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:pledge | autoConvert | boolean | yes | no | none | No description in lexicon yet. |
| def:pledge | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:pledge | canceledAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:pledge | canceledBy | string<payer | app | creator | admin | system> | no | no | maxLength:16 | No description in lexicon yet. |
| def:pledge | convertedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:pledgeCreated | pledge | ref:#pledge | yes | no | none | No description in lexicon yet. |
| def:pledgeCanceled | pledge | ref:#pledge | yes | no | none | No description in lexicon yet. |
| def:pledgeConverted | pledge | ref:#pledge | yes | no | none | No description in lexicon yet. |
| def:pledgeConverted | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:pledgeConverted | subscriptionId | string | no | no | maxLength:256 | Durable ATM subscriptions.id created by the conversion. |
| def:pledgeConversionFailed | pledge | ref:#pledge | yes | no | none | No description in lexicon yet. |
| def:pledgeConversionFailed | reasonCode | string | yes | no | maxLength:64 | Coarse decline class: card_declined, authentication_required, charge_failed, ... |
| def:pledgeConversionFailed | willRetry | boolean | yes | no | none | True when ATM retries automatically after backoff; false when terminally failed (the app owns re-engagement). |
| def:payerRecordRequested | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:payerRecordRequested | payerDid | string | yes | no | format:did | No description in lexicon yet. |
| def:payerRecordRequested | recipientDid | string | yes | no | format:did | No description in lexicon yet. |
| def:payerRecordRequested | collection | string | yes | no | format:nsid | No description in lexicon yet. |
| def:payerRecordRequested | recordRkey | string | yes | no | minLength:13, maxLength:13 | Exact TID-shaped record key the app must use. |
| def:payerRecordRequested | canonicalRecord | union<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled> | yes | no | none | No description in lexicon yet. |
| def:payerRecordRequested | expectedCid | string | yes | no | format:cid | No description in lexicon yet. |
| def:payerRecordRequested | proofLifecycleGeneration | integer | yes | no | minimum:1 | Exact verified proof-lifecycle generation authorizing this public write request. |
| def:payerRecordRequested | proofLifecycleState | string<verified> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:payerRecordRequested | expiresAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:creatorProofRequested | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:creatorProofRequested | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| def:creatorProofRequested | attestationCid | string | yes | no | format:cid | No description in lexicon yet. |
| def:creatorProofRequested | payerProofRef | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:creatorProofRequested | proofRecord | ref:network.attested.payment.proof | yes | no | none | No description in lexicon yet. |
| def:creatorProofRequested | proofLifecycleGeneration | integer | yes | no | minimum:1 | Exact verified proof-lifecycle generation authorizing this public write request. |
| def:creatorProofRequested | proofLifecycleState | string<verified> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:creatorProofRequested | expiresAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:payerClaimed | did | string | yes | no | format:did | No description in lexicon yet. |
| def:payerClaimed | paymentIds | array<string> | yes | no | maxLength:200 | No description in lexicon yet. |
| def:payerClaimed | subscriptionIds | array<string> | no | no | maxLength:200 | No description in lexicon yet. |
| def:payerClaimed | ticketIds | array<string> | no | no | maxLength:500 | No description in lexicon yet. |
| def:payerClaimed | claimedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:attestationUpdated | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:attestationUpdated | payment | ref:#payment | no | no | none | Canonical sanitized payment snapshot for exact event routing when the receiving app has no local payment mirror. |
| def:attestationUpdated | proofLifecycleGeneration | integer | no | no | minimum:1 | Monotonic broker-proof lifecycle generation. |
| def:attestationUpdated | proofLifecycleState | string<verified | invalidated> | no | no | maxLength:16 | Broker-proof lifecycle state at proofLifecycleGeneration. |
| def:attestationUpdated | attestationRevision | integer | yes | no | minimum:0 | Monotonic per-payment revision of the state represented by this event. |
| def:attestationUpdated | attestationStatus | string | yes | no | maxLength:64 | Authoritative ATM attestation state at this revision. |
| def:attestationUpdated | trustTier | string<federated | creator-trusted | strict> | yes | yes | maxLength:32 | Active public trust tier, or null when the payment is private or invalidated. |
| def:attestationUpdated | lifecycle | string<active | invalidated> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:attestationUpdated | visibility | string<public | private> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:attestationUpdated | invalidatedAt | string | yes | yes | format:datetime | Authoritative invalidation time, or null while the proof lifecycle is active. |
| def:attestationUpdated | invalidationReason | string | yes | yes | maxLength:128 | Authoritative refund, dispute, or administrative invalidation reason, or null while active. |
| def:attestationUpdated | brokerProofUri | string | yes | yes | format:at-uri | No description in lexicon yet. |
| def:attestationUpdated | brokerProofCid | string | yes | yes | format:cid | No description in lexicon yet. |
| def:attestationUpdated | payerProofUri | string | yes | yes | format:at-uri | No description in lexicon yet. |
| def:attestationUpdated | payerProofCid | string | yes | yes | format:cid | No description in lexicon yet. |
| def:attestationUpdated | payerProofPending | boolean | yes | no | none | No description in lexicon yet. |
| def:attestationUpdated | payerResolvedVia | string<app | broker | declined> | yes | yes | maxLength:16 | No description in lexicon yet. |
| def:attestationUpdated | payerRecordSuppressed | boolean | yes | no | none | No description in lexicon yet. |
| def:attestationUpdated | creatorProofUri | string | yes | yes | format:at-uri | No description in lexicon yet. |
| def:attestationUpdated | creatorProofCid | string | yes | yes | format:cid | No description in lexicon yet. |
| def:attestationUpdated | creatorProofPending | boolean | yes | no | none | No description in lexicon yet. |
| def:attestationUpdated | creatorResolvedVia | string<app | broker | declined> | yes | yes | maxLength:16 | No description in lexicon yet. |
| def:attestationUpdated | payerRecordRetracted | boolean | yes | no | none | True when the payer removed their public payer record. |
| def:attestationUpdated | payerRecordRetractionId | string | yes | yes | maxLength:256 | Stable identifier for this retraction generation. |
| def:productUpdated | product | ref:#product | yes | no | none | No description in lexicon yet. |
| def:productUpdated | creatorDid | string | no | no | format:did | No description in lexicon yet. |
| def:productUpdated | appLink | ref:#productAppLink | no | no | none | No description in lexicon yet. |
| def:productArchived | product | ref:#product | yes | no | none | No description in lexicon yet. |
| def:productArchived | creatorDid | string | no | no | format:did | No description in lexicon yet. |
| def:productArchived | appLink | ref:#productAppLink | no | no | none | No description in lexicon yet. |
| def:productDeleted | product | ref:#product | yes | no | none | No description in lexicon yet. |
| def:productDeleted | creatorDid | string | no | no | format:did | No description in lexicon yet. |
| def:productDeleted | appLink | ref:#productAppLink | no | no | none | No description in lexicon yet. |
| def:ticketHoldCreated | hold | ref:#ticketHold | yes | no | none | No description in lexicon yet. |
| def:ticketHoldExpired | hold | ref:#ticketHold | yes | no | none | No description in lexicon yet. |
| def:ticketsIssued | paymentId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:ticketsIssued | claimId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:ticketsIssued | hold | ref:#ticketHold | yes | no | none | No description in lexicon yet. |
| def:ticketsIssued | tickets | array<ref:#issuedTicket> | yes | no | none | No description in lexicon yet. |
| def:ticketEventCanceled | event | ref:#ticketEventCanceledEvent | yes | no | none | No description in lexicon yet. |
| def:ticketEventCanceled | reason | string | yes | no | maxLength:1000 | No description in lexicon yet. |
| def:ticketEventCanceled | canceledAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:ticketEventCanceled | ticketCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketEventCanceled | paidTicketCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketEventCanceled | freeTicketCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketEventCanceled | refundRequestedCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketEventCanceled | refundPendingCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketEventCanceled | refundNeedsAttentionCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketVoided | paymentId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketVoided | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:ticketVoided | tickets | array<ref:#issuedTicket> | yes | no | none | No description in lexicon yet. |
| def:ticketReleased | buyerDid | string | yes | no | format:did | No description in lexicon yet. |
| def:ticketReleased | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketReleased | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:ticketReleased | tickets | array<ref:#issuedTicket> | yes | no | none | No description in lexicon yet. |
| def:ticketRefunded | paymentId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketRefunded | reason | string | no | no | maxLength:512 | No description in lexicon yet. |
| def:ticketRefunded | tickets | array<ref:#issuedTicket> | yes | no | none | No description in lexicon yet. |
| def:ticketPartialRefundReview | paymentId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketPartialRefundReview | reason | string<partial-refund> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:ticketPartialRefundReview | amountRefunded | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketPartialRefundReview | activeTicketIds | array<string> | yes | no | none | No description in lexicon yet. |
| def:ticketPartialRefundReview | manualVoidMayBeRequired | boolean | yes | no | none | No description in lexicon yet. |
| def:ticketFailedRefundReview | paymentId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketFailedRefundReview | refundId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketFailedRefundReview | reason | string<refund-failed-after-ticket-void | refund-failed-after-preissuance-release> | yes | no | maxLength:64 | No description in lexicon yet. |
| def:ticketFailedRefundReview | ticketIds | array<string> | yes | no | none | No description in lexicon yet. |
| def:ticketFailedRefundReview | holdId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:ticketFailedRefundReview | manualRestoreRequired | boolean | yes | no | none | No description in lexicon yet. |
| def:ticketCheckedIn | ticket | ref:#issuedTicket | yes | no | none | No description in lexicon yet. |
| def:ticketCheckedIn | checkIn | ref:#ticketCheckIn | yes | no | none | No description in lexicon yet. |
| def:ticketFormSubmitted | ticket | ref:#issuedTicket | yes | no | none | No description in lexicon yet. |
| def:ticketFormSubmitted | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketFormSubmitted | submittedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:ticketFormSubmitted | answeredFieldKeys | array<string> | yes | no | maxLength:30 | Keys of the fields the attendee answered. |
| def:ticketWaitlistJoined | waitlist | ref:#ticketWaitlistJoinedWaitlist | yes | no | none | No description in lexicon yet. |
| def:ticketWaitlistOffered | waitlist | ref:#ticketWaitlistOfferedWaitlist | yes | no | none | No description in lexicon yet. |
| def:ticketCollaborationInvited | collaboration | ref:#ticketCollaboration | yes | no | none | No description in lexicon yet. |
| def:ticketCollaborationAccepted | collaboration | ref:#ticketCollaboration | yes | no | none | No description in lexicon yet. |
| def:ticketCollaborationRevoked | collaboration | ref:#ticketCollaboration | yes | no | none | No description in lexicon yet. |
| def:ticketCollaboration | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketCollaboration | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketCollaboration | primaryOrganizerDid | string | yes | no | format:did | No description in lexicon yet. |
| def:ticketCollaboration | coOrganizerDid | string | yes | no | format:did | No description in lexicon yet. |
| def:ticketCollaboration | status | string<pending | accepted | revoked> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:ticketCollaboration | revenueShareBps | integer | no | no | minimum:0, maximum:10000 | Recorded revenue-share INTENT in basis points, for MANUAL RECONCILIATION ONLY. |
| def:ticketCollaboration | timestamp | string | yes | no | format:datetime | No description in lexicon yet. |
| def:customerSegmentMessageRequested | segmentKey | string<at-risk-churn | high-value | lapsed> | yes | no | maxLength:32 | Which computed cohort the message targets. |
| def:customerSegmentMessageRequested | messageType | string | yes | no | maxLength:64 | App-defined opaque message identifier (e.g. |
| def:customerSegmentMessageRequested | memberCount | integer | yes | no | minimum:0 | Current number of members in the cohort at request time. |
| def:customerSegmentMessageRequested | requestedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:recipientAuthorizationUpdated | recipientDid | string | yes | no | format:did | No description in lexicon yet. |
| def:recipientAuthorizationUpdated | status | string<approved | blocked | revoked> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:recipientAuthorizationUpdated | approvedPaymentTypes | array<string> | no | no | maxLength:16 | Payment types the recipient approved this app to originate. |
| def:recipientAuthorizationUpdated | approvedFeeShareBps | integer | no | yes | minimum:0, maximum:10000 | Maximum rate the recipient authorizes ATM to charge as ATM's own application fee on payments originated by this app, in basis points; it is the fee base for ATM's separate contractual revenue-share obligation, under which the app is the payee. |
| def:recipientAuthorizationUpdated | updatedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:attestationPolicy | appRecord | string<public | private> | no | no | maxLength:16 | No description in lexicon yet. |
| def:attestationPolicy | attestation | string<public | private> | no | no | maxLength:16 | No description in lexicon yet. |
| def:ticketEventCanceledEvent | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketEventCanceledEvent | title | string | yes | no | maxLength:3000, maxGraphemes:300 | No description in lexicon yet. |
| def:ticketEventCanceledEvent | status | string<canceled> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:ticketEventCanceledEvent | startsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:ticketWaitlistJoinedWaitlist | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketWaitlistJoinedWaitlist | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketWaitlistJoinedWaitlist | capacityGroupId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketWaitlistJoinedWaitlist | ticketTypeId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:ticketWaitlistJoinedWaitlist | quantity | integer | yes | no | minimum:1 | No description in lexicon yet. |
| def:ticketWaitlistOfferedWaitlist | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketWaitlistOfferedWaitlist | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketWaitlistOfferedWaitlist | capacityGroupId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketWaitlistOfferedWaitlist | ticketTypeId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:ticketWaitlistOfferedWaitlist | quantity | integer | yes | no | minimum:1 | No description in lexicon yet. |
| def:ticketWaitlistOfferedWaitlist | offerHoldId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketWaitlistOfferedWaitlist | offerExpiresAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.event.listEvents11 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | cursor | string | no | no | maxLength:1024 | Opaque pagination cursor from a previous response. |
| params | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:200 | No description in lexicon yet. |
| output | events | array<ref:#event> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | Opaque cursor to pass back as `cursor` for the next strictly newer page. |
| def:event | id | string | yes | no | maxLength:128 | Delivery id (the webhook Atm-Delivery-Id). |
| def:event | type | ref:money.atmosphere.event.defs#eventType | yes | no | none | Event type, e.g. |
| def:event | seq | integer | yes | no | minimum:1 | Globally allocated event ordering position, unique and increasing within one ledger lifetime but not contiguous within an app's event history. |
| def:event | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:event | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:event | data | unknown | yes | no | none | A bounded PII-free event summary. |
money.atmosphere.event.receiveEvent7 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | id | string | yes | no | maxLength:128 | ATM delivery id. |
| input | type | ref:money.atmosphere.event.defs#eventType | yes | no | none | ATM event type, such as payment.completed or tickets.issued. |
| input | createdAt | string | yes | no | format:datetime | When ATM built the event envelope. |
| input | apiVersion | string | yes | no | maxLength:32 | ATM outbound event envelope version. |
| input | environment | string<test | live> | no | no | maxLength:16 | ATM app environment for this delivery. |
| input | data | union<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> | yes | no | none | Event-specific payload. |
| output | accepted | boolean | no | no | none | Optional acknowledgement. |
money.atmosphere.membership.assertMember2 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | memberDid | string | yes | no | format:did | The member DID asserting presence. |
| output | accepted | boolean | yes | no | none | No description in lexicon yet. |
money.atmosphere.membership.createProgram8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | creatorDid | string | yes | no | format:did | Creator/project DID that will own the membership program. |
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| input | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| input | scope | string<creator-wide | app-specific> | no | no | maxLength:32 | Whether apps should treat the program as creator-wide or app-specific. |
| input | product | ref:com.atproto.repo.strongRef | no | no | none | Optional money.atmosphere.product (kind=membership) in the creator's repo. |
| input | recipientAssertionJwt | string | no | no | maxLength:8192 | Optional creator presence token (com.atproto.server.getServiceAuth JWT, iss=creatorDid, aud=ATM broker, lxm=money.atmosphere.app.assertRecipient) authorizing this app to author the membership without a standing approval. |
| output | program | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
money.atmosphere.membership.createTier16 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | program | ref:com.atproto.repo.strongRef | yes | no | none | Parent money.atmosphere.membership.program record in the creator's repo. |
| input | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| input | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| input | benefits | array<ref:#benefit> | no | no | maxLength:24 | Public benefit labels only; access enforcement comes from payment state. |
| input | product | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| input | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| input | unitAmount | integer | no | no | minimum:0 | No description in lexicon yet. |
| input | currency | string | no | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| input | rank | integer | no | no | minimum:0 | No description in lexicon yet. |
| input | sortOrder | integer | no | no | minimum:0 | No description in lexicon yet. |
| input | recipientAssertionJwt | string | no | no | maxLength:8192 | No description in lexicon yet. |
| output | tier | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| def:benefit | kind | string | no | no | maxLength:80 | No description in lexicon yet. |
| def:benefit | label | string | yes | no | minLength:1, maxLength:1200, maxGraphemes:120 | No description in lexicon yet. |
money.atmosphere.membership.getAccess16 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | memberDid | string | yes | no | format:did | Member DID to check. |
| input | creatorDid | string | yes | no | format:did | Creator or project DID whose membership is being checked. |
| input | memberAssertionJwt | string | yes | no | maxLength:8192 | Single-use, short-TTL member presence token: a com.atproto.server.getServiceAuth JWT with iss = memberDid, aud = the broker DID's #AttestedNetwork service, lxm = money.atmosphere.membership.assertMember. |
| input | environment | string<test | live> | no | no | maxLength:16 | ATM app environment. |
| input | program | string | no | no | format:at-uri | Optional money.atmosphere.membership.program AT-URI to check. |
| input | tier | string | no | no | format:at-uri | Optional money.atmosphere.membership.tier AT-URI to check. |
| input | tierOrAbove | boolean | no | no | none | When true, an exact tier match or a different tier with rank strictly greater than the requested tier rank satisfies access. |
| output | access | boolean | yes | no | none | True when ATM found an active membership satisfying the request. |
| output | memberDid | string | yes | no | format:did | No description in lexicon yet. |
| output | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| output | program | ref:com.atproto.repo.strongRef | no | no | none | Matched membership program, when resolved. |
| output | tiers | array<ref:#accessTier> | no | no | maxLength:16 | Matched active tiers the caller is authorized to know about. |
| output | checkedAt | string | yes | no | format:datetime | When ATM evaluated access. |
| def:accessTier | tier | ref:com.atproto.repo.strongRef | yes | no | none | Matched money.atmosphere.membership.tier record. |
| def:accessTier | rank | integer | no | no | minimum:0 | Resolved tier rank, when known. |
| def:accessTier | currentPeriodEndsAt | string | no | no | format:datetime | When the current paid period ends, when available to the caller. |
money.atmosphere.membership.listGrants19 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | creatorDid | string | no | no | format:did | Filter to grants for one creator. |
| params | memberDid | string | no | no | format:did | Filter to grants for one member. |
| params | reference | string | no | no | maxLength:256 | Filter to grants registered with this app-local reference. |
| params | environment | string<test | live> | no | no | maxLength:16 | ATM app environment. |
| params | includeRevoked | boolean | no | no | none | Include revoked grants (tombstones) in the results. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:256 | No description in lexicon yet. |
| output | grants | array<ref:#grant> | yes | no | maxLength:100 | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:256 | Opaque pagination cursor; absent on the last page. |
| def:grant | grantId | string | yes | no | maxLength:128 | No description in lexicon yet. |
| def:grant | memberDid | string | yes | no | format:did | No description in lexicon yet. |
| def:grant | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| def:grant | program | string | no | no | format:at-uri | money.atmosphere.membership.program AT-URI, when the grant is program-scoped. |
| def:grant | tier | string | no | no | format:at-uri | money.atmosphere.membership.tier AT-URI, when the grant is tier-scoped. |
| def:grant | source | string<comp | migration | free-claim> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:grant | registeredAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:grant | expiresAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:grant | revokedAt | string | no | no | format:datetime | Present only when includeRevoked=true returned a revoked grant. |
| def:grant | reference | string | no | no | maxLength:256 | Opaque app-local reconciliation id echoed back. |
money.atmosphere.membership.program8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | Public membership program name. |
| record | description | string | no | no | maxLength:10000, maxGraphemes:1000 | Public description or terms for the membership program. |
| record | scope | string<creator-wide | app-specific> | no | no | maxLength:32 | Whether apps should treat this as a creator-wide membership or a membership intended for one app surface. |
| record | product | ref:com.atproto.repo.strongRef | no | no | none | Optional parent money.atmosphere.product record with kind=membership. |
| record | archived | boolean | no | no | none | Whether this membership program is no longer offered to new members. |
| record | archivedAt | string | no | no | format:datetime | No description in lexicon yet. |
| record | createdAt | string | yes | no | format:datetime | When this membership program record was created. |
| record | updatedAt | string | no | no | format:datetime | When this membership program record was last updated. |
money.atmosphere.membership.registerGrant13 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | memberDid | string | yes | no | format:did | Member DID receiving the grant. |
| input | creatorDid | string | yes | no | format:did | Creator or project DID whose membership is being granted. |
| input | program | string | no | no | format:at-uri | Optional money.atmosphere.membership.program AT-URI in the creator's repo. |
| input | tier | string | no | no | format:at-uri | Optional money.atmosphere.membership.tier AT-URI in the creator's repo. |
| input | source | string<comp | migration | free-claim> | yes | no | maxLength:32 | Why the grant exists: a creator comp, a billing-migration import, or a free-tier claim flow. |
| input | environment | string<test | live> | no | no | maxLength:16 | ATM app environment. |
| input | expiresAt | string | no | no | format:datetime | Optional expiry after which the grant no longer satisfies access checks. |
| input | reference | string | no | no | maxLength:256 | Optional opaque app-local reference for reconciliation (for example a migration batch or comp id). |
| output | grantId | string | yes | no | maxLength:128 | Opaque grant id for later revocation. |
| output | memberDid | string | yes | no | format:did | No description in lexicon yet. |
| output | creatorDid | string | yes | no | format:did | No description in lexicon yet. |
| output | registeredAt | string | yes | no | format:datetime | When ATM recorded the grant. |
| output | expiresAt | string | no | no | format:datetime | Echoed expiry, when set. |
money.atmosphere.membership.revokeGrant4 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | grantId | string | yes | no | maxLength:128 | Grant id returned by registerGrant. |
| input | environment | string<test | live> | no | no | maxLength:16 | ATM app environment. |
| output | revoked | boolean | yes | no | none | True when the grant is revoked (including when it was already revoked). |
| output | revokedAt | string | yes | no | format:datetime | When the grant stopped satisfying access checks. |
money.atmosphere.membership.tier16 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | program | string | yes | no | format:at-uri | AT-URI identity of the parent money.atmosphere.membership.program. |
| record | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | Public tier name. |
| record | description | string | no | no | maxLength:10000, maxGraphemes:1000 | Public description of this tier. |
| record | benefits | array<ref:#benefit> | no | no | maxLength:24 | Public benefit labels only. |
| record | product | ref:com.atproto.repo.strongRef | no | no | none | Optional money.atmosphere.product record with kind=membership for this tier. |
| record | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | Optional CID-pinned strongRef to the current recurring money.atmosphere.price for this tier. |
| record | unitAmount | integer | no | no | minimum:0 | Display amount in the smallest unit of currency, matching the linked price when present. |
| record | currency | string | no | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| record | rank | integer | no | no | minimum:0 | Optional access rank within the program. |
| record | sortOrder | integer | no | no | minimum:0 | Creator-controlled display order. |
| record | archived | boolean | no | no | none | Whether this tier is no longer available for new members. |
| record | archivedAt | string | no | no | format:datetime | No description in lexicon yet. |
| record | createdAt | string | yes | no | format:datetime | When this tier record was created. |
| record | updatedAt | string | no | no | format:datetime | When this tier record was last updated. |
| def:benefit | kind | string | no | no | maxLength:80 | Optional app-neutral benefit category. |
| def:benefit | label | string | yes | no | minLength:1, maxLength:1200, maxGraphemes:120 | Public benefit label. |
money.atmosphere.membership.updateProgram9 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | program | ref:com.atproto.repo.strongRef | yes | no | none | The money.atmosphere.membership.program record to update. |
| input | title | string | no | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| input | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| input | scope | string<creator-wide | app-specific> | no | no | maxLength:32 | Deprecated compatibility input. |
| input | product | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| input | archived | boolean | no | no | none | No description in lexicon yet. |
| input | recipientAssertionJwt | string | no | no | maxLength:8192 | No description in lexicon yet. |
| output | program | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
money.atmosphere.membership.updateTier16 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | tier | ref:com.atproto.repo.strongRef | yes | no | none | The money.atmosphere.membership.tier record to update. |
| input | title | string | no | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| input | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| input | benefits | array<ref:#benefit> | no | no | maxLength:24 | No description in lexicon yet. |
| input | product | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| input | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| input | unitAmount | integer | no | no | minimum:0 | No description in lexicon yet. |
| input | currency | string | no | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| input | rank | integer | no | no | minimum:0 | No description in lexicon yet. |
| input | sortOrder | integer | no | no | minimum:0 | No description in lexicon yet. |
| input | archived | boolean | no | no | none | No description in lexicon yet. |
| input | recipientAssertionJwt | string | no | no | maxLength:8192 | No description in lexicon yet. |
| output | tier | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| def:benefit | kind | string | no | no | maxLength:80 | No description in lexicon yet. |
| def:benefit | label | string | yes | no | minLength:1, maxLength:1200, maxGraphemes:120 | No description in lexicon yet. |
money.atmosphere.order.defs46 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| def:fulfillment | mode | string<app-managed | atm-managed> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:fulfillment | ownerAppDid | string | yes | no | format:did | No description in lexicon yet. |
| def:fulfillment | workflow | string<automatic | manual> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:fulfillment | managementUrl | string | no | no | maxLength:2048, format:uri | No description in lexicon yet. |
| def:routing | version | integer | yes | no | minimum:1 | No description in lexicon yet. |
| def:routing | kind | string<shop | commission> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:routing | clientOrderId | string | yes | no | maxLength:200 | No description in lexicon yet. |
| def:routing | salesChannelAppDid | string | yes | no | format:did | No description in lexicon yet. |
| def:routing | fulfillment | ref:#fulfillment | yes | no | none | No description in lexicon yet. |
| def:routing | inventoryAuthority | string<app | atm> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:routing | inventoryPolicy | string<finite | unlimited> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:inventoryReservation | id | string | yes | no | minLength:1, maxLength:64 | No description in lexicon yet. |
| def:inventoryReservation | inventoryRevision | integer | yes | no | minimum:1, maximum:9007199254740991 | Inventory ledger revision frozen when the hold was created. |
| def:inventoryReservation | quantity | integer | yes | no | minimum:1, maximum:999 | No description in lexicon yet. |
| def:item | quantity | integer | no | no | minimum:1 | No description in lexicon yet. |
| def:item | listing | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:item | productUri | string | no | no | format:at-uri | No description in lexicon yet. |
| def:item | variantUri | string | no | no | format:at-uri | No description in lexicon yet. |
| def:item | inventoryReservation | ref:#inventoryReservation | no | no | none | No description in lexicon yet. |
| def:item | title | string | no | no | maxLength:200 | No description in lexicon yet. |
| def:item | variant | string | no | no | maxLength:200 | No description in lexicon yet. |
| def:item | sku | string | no | no | maxLength:120 | No description in lexicon yet. |
| def:order | id | string | yes | no | maxLength:64 | No description in lexicon yet. |
| def:order | clientOrderId | string | yes | no | maxLength:200 | No description in lexicon yet. |
| def:order | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:order | environment | string<live | test> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:order | kind | string<shop | commission> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:order | revision | integer | yes | no | minimum:1 | Monotonic canonical state revision. |
| def:order | routing | ref:#routing | yes | no | none | No description in lexicon yet. |
| def:order | financialStatus | ref:#financialStatus | yes | no | none | No description in lexicon yet. |
| def:order | fulfillmentStatus | ref:#fulfillmentStatus | yes | no | none | No description in lexicon yet. |
| def:order | fulfillmentStateCause | ref:#fulfillmentStateCause | no | no | none | No description in lexicon yet. |
| def:order | item | ref:#item | no | no | none | No description in lexicon yet. |
| def:order | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:order | updatedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:fulfillmentEvent | id | string | yes | no | maxLength:64 | No description in lexicon yet. |
| def:fulfillmentEvent | seq | integer | yes | no | minimum:1 | Monotonic per-order history sequence. |
| def:fulfillmentEvent | fromFulfillmentStatus | ref:#fulfillmentStatus | yes | no | none | No description in lexicon yet. |
| def:fulfillmentEvent | toFulfillmentStatus | ref:#fulfillmentStatus | yes | no | none | No description in lexicon yet. |
| def:fulfillmentEvent | revision | integer | yes | no | minimum:2 | No description in lexicon yet. |
| def:fulfillmentEvent | note | string | no | no | maxLength:1000, maxGraphemes:1000 | No description in lexicon yet. |
| def:fulfillmentEvent | tracking | ref:#tracking | no | no | none | No description in lexicon yet. |
| def:fulfillmentEvent | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:tracking | carrier | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:tracking | number | string | no | no | maxLength:128 | No description in lexicon yet. |
| def:tracking | url | string | no | no | maxLength:2048, format:uri | No description in lexicon yet. |
money.atmosphere.order.getOrder5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | id | string | no | no | maxLength:64 | No description in lexicon yet. |
| params | clientOrderId | string | no | no | maxLength:200 | No description in lexicon yet. |
| params | kind | string<shop | commission> | no | no | maxLength:32 | Required when looking up by clientOrderId. |
| params | environment | string<live | test> | no | no | maxLength:16 | Required when looking up by clientOrderId. |
| output | order | ref:money.atmosphere.order.defs#order | yes | no | none | No description in lexicon yet. |
money.atmosphere.order.listOrders8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<live | test> | yes | no | maxLength:16 | No description in lexicon yet. |
| params | fulfillmentStatus | string<unfulfilled | ready | on-hold | processing | partially-fulfilled | fulfilled | failed | canceled> | no | no | maxLength:32 | No description in lexicon yet. |
| params | financialStatus | string<not-required | pending | paid | partially-refunded | refunded | disputed | chargeback | failed | canceled> | no | no | maxLength:32 | No description in lexicon yet. |
| params | updatedSince | string | no | no | format:datetime | Only orders whose canonical state changed at or after this time. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:2048 | No description in lexicon yet. |
| output | orders | array<ref:money.atmosphere.order.defs#order> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:2048 | No description in lexicon yet. |
money.atmosphere.order.updateFulfillment9 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | id | string | yes | no | maxLength:64 | No description in lexicon yet. |
| input | expectedRevision | integer | yes | no | minimum:1 | No description in lexicon yet. |
| input | fulfillmentStatus | string<ready | processing | partially-fulfilled | fulfilled | on-hold | canceled | failed> | yes | no | maxLength:32 | Target fulfillment state. |
| input | idempotencyKey | string | yes | no | minLength:1, maxLength:200 | No description in lexicon yet. |
| input | note | string | no | no | maxLength:1000, maxGraphemes:1000 | No description in lexicon yet. |
| input | tracking | ref:money.atmosphere.order.defs#tracking | no | no | none | No description in lexicon yet. |
| output | order | ref:money.atmosphere.order.defs#order | yes | no | none | No description in lexicon yet. |
| output | event | ref:money.atmosphere.order.defs#fulfillmentEvent | yes | no | none | No description in lexicon yet. |
| output | replayed | boolean | yes | no | none | True when this response replays a previously recorded mutation for the same idempotencyKey. |
money.atmosphere.payment.assertPayer3 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | payerDid | string | yes | no | format:did | The buyer DID asserted by the app-held user session. |
| input | checkoutToken | string | no | no | maxLength:512 | Optional ATM checkout/session token this assertion was minted for. |
| output | accepted | boolean | yes | no | none | No description in lexicon yet. |
money.atmosphere.payment.authPublishReceipt1 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| permission | repo[0] | create<money.atmosphere.payment.receipt | money.atmosphere.payment.recurringReceipt> | yes | no | none | Allow this app to create public payment receipt records in your account for payments you complete. |
money.atmosphere.payment.cancelPledge5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | pledgeId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| input | reason | string | no | no | maxLength:256 | No description in lexicon yet. |
| output | pledgeId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| output | status | string<canceled> | yes | no | maxLength:32 | Pledge status after cancellation (currently always canceled). |
| output | canceledAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.payment.cancelSubscription7 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | subscriptionId | string | no | no | maxLength:256 | Opaque ATM subscription relationship id from money.atmosphere.payment.listSubscriptions. |
| input | paymentId | string | no | no | maxLength:256 | Legacy/current ATM recurring payment id. |
| input | reason | string | no | no | maxLength:256 | No description in lexicon yet. |
| output | subscriptionId | string | no | no | maxLength:256 | No description in lexicon yet. |
| output | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| output | status | string | yes | no | maxLength:64 | No description in lexicon yet. |
| output | canceledAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.payment.convertPledges10 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | recipientDid | string | yes | no | format:did | No description in lexicon yet. |
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | pledgeIds | array<string> | no | no | maxLength:50 | No description in lexicon yet. |
| output | results | array<ref:#result> | yes | no | none | No description in lexicon yet. |
| def:result | pledgeId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:result | outcome | string<converted | superseded | waiting | failed | skipped> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:result | reason | string | no | no | maxLength:500 | Why the pledge is waiting/failed/skipped (e.g. |
| def:result | paymentId | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:result | subscriptionId | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:result | willRetry | boolean | no | no | none | No description in lexicon yet. |
money.atmosphere.payment.createManagementSession7 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | payerDid | string | yes | no | format:did | The payer DID asserted by the app-held user session. |
| input | payerAssertion | string | yes | no | maxLength:4096 | Single-use payer service-auth JWT (lxm money.atmosphere.payment.assertPayer, aud = the broker DID's #AttestedNetwork service, e.g. |
| input | subscriptionId | string | no | no | maxLength:256 | Opaque ATM subscription relationship id from money.atmosphere.payment.listSubscriptions. |
| input | paymentId | string | no | no | maxLength:256 | ATM recurring payment id anchor. |
| input | returnUrl | string | no | no | maxLength:1024, format:uri | Optional link back into the app shown on the management surface. |
| output | url | string | yes | no | format:uri | Short-lived, single-use management session URL. |
| output | expiresAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.payment.createPledge21 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | recipientDid | string | yes | no | format:did | Recipient the payer is pledging to. |
| input | amount | integer | yes | no | minimum:50, maximum:2000000 | Pledged per-cycle amount in integer minor units (same bounds as checkout). |
| input | currency | string | no | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| input | interval | string<month | quarter | year> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | payerDid | string | no | no | format:did | Optional signed-in payer hint. |
| input | payerEmailHint | string | no | no | maxLength:320 | Private prefill hint for the card-save page. |
| input | tierLabel | string | no | no | maxLength:200 | No description in lexicon yet. |
| input | subscriptionGroupKey | string | no | no | maxLength:256 | Same offering-scoping contract as subscription checkout: pledges and subscriptions sharing a group key are one offering for duplicate blocking. |
| input | listing | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| input | entitlements | array<ref:com.atproto.repo.strongRef> | no | no | maxLength:50 | No description in lexicon yet. |
| input | metadata | unknown | no | no | none | Private app metadata carried onto the converted payment. |
| input | autoConvert | boolean | no | no | none | Deprecated compatibility alias. |
| input | requireManualConversion | boolean | no | no | none | When true, conversion happens only via convertPledges or the creator dashboard. |
| input | expiresAt | string | no | no | format:datetime | Optional expiry; the pledge is retired without charge if not converted by then. |
| input | returnUrl | string | no | no | maxLength:2048, format:uri | No description in lexicon yet. |
| input | cancelUrl | string | no | no | maxLength:2048, format:uri | No description in lexicon yet. |
| output | pledgeId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| output | token | string | yes | no | maxLength:256 | Browser bearer for the ATM-hosted card-save/manage page. |
| output | url | string | yes | no | maxLength:2048, format:uri | No description in lexicon yet. |
| output | status | string<pending-setup> | yes | no | maxLength:32 | Pledge status right after creation (currently always pending-setup: the payer has not saved a card yet). |
money.atmosphere.payment.createSubscriptionChangeSession8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | payerDid | string | yes | no | format:did | No description in lexicon yet. |
| input | payerAssertion | string | yes | no | maxLength:4096 | No description in lexicon yet. |
| input | changeId | string | yes | no | maxLength:128 | No description in lexicon yet. |
| input | quoteHash | string | yes | no | minLength:64, maxLength:64 | No description in lexicon yet. |
| input | returnUrl | string | no | no | maxLength:1024, format:uri | No description in lexicon yet. |
| output | change | ref:money.atmosphere.payment.previewSubscriptionChange#subscriptionChange | yes | no | none | No description in lexicon yet. |
| output | url | string | yes | no | format:uri | No description in lexicon yet. |
| output | expiresAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.payment.declineRecord8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| input | recordType | string<payer | creator> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | reason | string | no | no | maxLength:256 | No description in lexicon yet. |
| input | proofLifecycleGeneration | integer | no | no | minimum:1, maximum:9007199254740991 | Exact verified broker-proof lifecycle generation from the delegated request. |
| input | proofLifecycleState | string<verified> | no | no | maxLength:16 | Verified state paired with proofLifecycleGeneration. |
| output | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| output | recordType | string<payer | creator> | yes | no | maxLength:16 | No description in lexicon yet. |
| output | resolvedVia | string<broker | declined> | yes | no | maxLength:16 | No description in lexicon yet. |
money.atmosphere.payment.defs4 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| def:fiatMinor | amountMinor | integer | yes | no | minimum:1, maximum:9007199254740991 | Final fiat amount in the ISO 4217 currency's minor unit according to that currency's ISO exponent (for example, cents for USD). |
| def:fiatMinor | currency | string | yes | no | minLength:3, maxLength:3 | Uppercase ISO 4217 alphabetic code (for example, USD or EUR). |
| def:assetAtomic | amountAtomic | string | yes | no | minLength:1, maxLength:78 | Canonical positive base-10 integer atomic-unit amount: no sign, decimal point, exponent, whitespace, or leading zero; value MUST be at most 2^256-1. |
| def:assetAtomic | asset | string | yes | no | minLength:11, maxLength:179 | Exact case-sensitive network-qualified fungible-asset identifier using the frozen CAIP-19 asset-type grammar supplied by the applicable payment profile (for example, eip155:1/erc20:0x...). |
money.atmosphere.payment.diagnoseSubscriptionFailure9 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | subscriptionId | string | yes | no | maxLength:128 | The durable ATM subscription id. |
| params | invoiceId | string | no | no | maxLength:256 | Optional failed-cycle invoice id (informational). |
| output | reason | string<payer-declined | payment-method-expired | authentication-required | processor-unavailable | recipient-account-held | recipient-kyc-pending | unknown> | yes | no | maxLength:32 | No description in lexicon yet. |
| output | recipientHold | boolean | yes | no | none | True when the cause is on the recipient's payout account. |
| output | retryEligible | boolean | yes | no | none | Whether the processor will keep retrying (false for recipient holds). |
| output | recommendedActions | array<string> | yes | no | maxLength:20 | ATM-authored guidance the app acts on (it owns customer comms). |
| output | detail | string | yes | no | maxLength:256 | App-safe summary line; never the raw processor message. |
| output | failedAt | string | no | no | format:datetime | No description in lexicon yet. |
| output | invoiceId | string | no | no | maxLength:256 | No description in lexicon yet. |
money.atmosphere.payment.getSubscriptionChange2 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | changeId | string | yes | no | maxLength:128 | No description in lexicon yet. |
| output | change | ref:money.atmosphere.payment.previewSubscriptionChange#subscriptionChange | yes | no | none | No description in lexicon yet. |
money.atmosphere.payment.lifecycle5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | proof | ref:com.atproto.repo.strongRef | yes | no | none | Exact reference to the immutable money.atmosphere.payment.proof record whose payment this state describes. |
| record | status | string<settled | refunded | partially-refunded | disputed | reversed> | yes | no | maxLength:64 | Present post-settlement state asserted by the lifecycle authority (kebab-case fixed values). |
| record | revision | integer | yes | no | minimum:1, maximum:9007199254740991 | Dedicated, ledger-generated, per-payment lifecycle revision. |
| record | reason | string | no | no | maxLength:64 | Optional short machine-readable reason code (kebab-case). |
| record | asOf | string | yes | no | format:datetime | When the lifecycle authority last asserted this state (UTC). |
money.atmosphere.payment.listPayerProofs7 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | payer | string | yes | no | format:at-identifier | DID or handle of the payer whose public payment records to list. |
| params | paymentType | string<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled> | no | no | format:nsid | Optional filter by payment collection. |
| params | brokers | array<string> | no | no | maxLength:20 | Optional list of broker DIDs. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | Opaque pagination cursor from a previous response. |
| output | payments | array<union<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled>> | yes | no | none | List of the payer's verified public payment records, newest first. |
| output | cursor | string | no | no | maxLength:1024 | Pagination cursor. |
money.atmosphere.payment.listPendingRecords18 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | payerDid | string | no | no | format:did | No description in lexicon yet. |
| params | recipientDid | string | no | no | format:did | No description in lexicon yet. |
| params | recordType | string<payer | creator | any> | no | no | maxLength:16 | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | records | array<ref:#record> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:record | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:record | recordType | string<payer | creator> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:record | recordRkey | string | yes | no | minLength:13, maxLength:13 | Exact TID-shaped record key the app must use for this publication generation. |
| def:record | payerDid | string | no | no | format:did | No description in lexicon yet. |
| def:record | recipientDid | string | no | no | format:did | No description in lexicon yet. |
| def:record | collection | string | no | no | format:nsid | No description in lexicon yet. |
| def:record | canonicalRecord | union<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled | network.attested.payment.proof> | no | no | none | No description in lexicon yet. |
| def:record | attestationCid | string | no | no | format:cid | No description in lexicon yet. |
| def:record | expectedCid | string | yes | no | format:cid | No description in lexicon yet. |
| def:record | proofLifecycleGeneration | integer | yes | no | minimum:1 | Exact verified proof-lifecycle generation authorizing these public bytes. |
| def:record | proofLifecycleState | string<verified> | yes | no | maxLength:16 | No description in lexicon yet. |
money.atmosphere.payment.listPledges27 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| params | recipientDid | string | no | no | format:did | No description in lexicon yet. |
| params | status | string<pending-setup | active | converting | converted | canceled | superseded | failed | expired | all> | no | no | maxLength:32 | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | pledges | array<ref:#pledge> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:pledge | id | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:pledge | recipientDid | string | yes | no | format:did | No description in lexicon yet. |
| def:pledge | payerDid | string | no | no | format:did | Present only for signed-in pledgers. |
| def:pledge | amount | integer | yes | no | minimum:1 | No description in lexicon yet. |
| def:pledge | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:pledge | interval | string<month | quarter | year> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:pledge | tierLabel | string | no | no | maxLength:200 | No description in lexicon yet. |
| def:pledge | subscriptionGroupKey | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:pledge | listing | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:pledge | status | string<pending-setup | active | converting | converted | canceled | superseded | failed | expired> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:pledge | statusDetail | string | no | no | maxLength:500 | Coarse machine-readable reason for the current state (e.g. |
| def:pledge | autoConvert | boolean | yes | no | none | No description in lexicon yet. |
| def:pledge | url | string | yes | no | maxLength:2048, format:uri | ATM-hosted card-save/manage page for this pledge. |
| def:pledge | convertedPaymentId | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:pledge | convertedSubscriptionId | string | no | no | maxLength:256 | No description in lexicon yet. |
| def:pledge | convertedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:pledge | canceledAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:pledge | canceledBy | string<payer | app | creator | admin | system> | no | no | maxLength:16 | No description in lexicon yet. |
| def:pledge | expiresAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:pledge | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.payment.listSubscriptions24 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<live | test> | no | no | maxLength:16 | No description in lexicon yet. |
| params | status | string<active | all> | no | no | maxLength:16 | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | subscriptions | array<ref:#subscription> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:subscription | subscriptionId | string | yes | no | maxLength:256 | Opaque ATM subscription relationship id. |
| def:subscription | revision | integer | yes | no | minimum:1 | Monotonic ATM relationship revision. |
| def:subscription | paymentId | string | yes | no | maxLength:256 | Current or initial ATM recurring payment row for this subscription relationship. |
| def:subscription | recipientDid | string | yes | no | format:did | No description in lexicon yet. |
| def:subscription | originatorDid | string | yes | no | format:did | No description in lexicon yet. |
| def:subscription | environment | string<live | test> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:subscription | amount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:subscription | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:subscription | interval | string<day | week | month | year> | no | no | maxLength:16 | Billing interval unit, matching money.atmosphere.price#recurring. |
| def:subscription | intervalCount | integer | no | no | minimum:1, maximum:1095 | Number of interval units between billings. |
| def:subscription | status | string<completed | active | trialing | past_due | unpaid | canceled | externally-managed> | yes | no | maxLength:64 | Subscription relationship status. |
| def:subscription | currentCyclePaymentStatus | string<pending | paid | refunded | disputed> | yes | no | maxLength:16 | Sanitized exact current-cycle payment authority. |
| def:subscription | metadata | unknown | no | no | none | Sanitized public display hints only. |
| def:subscription | entitlements | array<ref:com.atproto.repo.strongRef> | no | no | maxLength:50 | No description in lexicon yet. |
| def:subscription | listing | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:subscription | currentPeriodEnd | string | no | no | format:datetime | End of the currently paid period when known. |
| def:subscription | cancelAtPeriodEnd | boolean | yes | no | none | True when cancellation is scheduled for currentPeriodEnd. |
| def:subscription | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.payment.previewSubscriptionChange42 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | payerDid | string | yes | no | format:did | No description in lexicon yet. |
| input | payerAssertion | string | yes | no | maxLength:4096 | No description in lexicon yet. |
| input | environment | string<live | test> | yes | no | maxLength:16 | No description in lexicon yet. |
| input | subscriptionId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| input | expectedRevision | integer | yes | no | minimum:1 | No description in lexicon yet. |
| input | changeAttemptId | string | yes | no | minLength:1, maxLength:200 | App-generated idempotency key. |
| input | targetProgram | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| input | targetTier | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| input | targetPrice | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| input | targetAmount | integer | no | no | minimum:0 | Optional target amount assertion. |
| output | change | ref:money.atmosphere.payment.previewSubscriptionChange#subscriptionChange | yes | no | none | No description in lexicon yet. |
| def:subscriptionChange | changeId | string | yes | no | maxLength:128 | Opaque ATM tier-change id. |
| def:subscriptionChange | subscriptionId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:subscriptionChange | subscriptionRevision | integer | yes | no | minimum:1 | No description in lexicon yet. |
| def:subscriptionChange | environment | string<live | test> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:subscriptionChange | status | string<quoted | awaiting-confirmation | awaiting-payment | action-required | scheduled | paid-pending-apply | applied | failed | canceled | superseded | expired> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:subscriptionChange | direction | string<upgrade | downgrade | lateral> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:subscriptionChange | fromPaymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| def:subscriptionChange | currentProgram | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:subscriptionChange | currentTier | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:subscriptionChange | currentListing | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:subscriptionChange | targetProgram | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| def:subscriptionChange | targetTier | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| def:subscriptionChange | targetListing | ref:com.atproto.repo.strongRef | yes | no | none | No description in lexicon yet. |
| def:subscriptionChange | targetEntitlements | array<ref:com.atproto.repo.strongRef> | yes | no | maxLength:50 | No description in lexicon yet. |
| def:subscriptionChange | currentAmount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:subscriptionChange | targetAmount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:subscriptionChange | chargeAmount | integer | yes | no | minimum:0 | Amount ATM will attempt immediately after exact hosted confirmation. |
| def:subscriptionChange | currency | string | yes | no | minLength:3, maxLength:3 | No description in lexicon yet. |
| def:subscriptionChange | interval | string<day | week | month | year> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:subscriptionChange | intervalCount | integer | yes | no | minimum:1, maximum:1095 | No description in lexicon yet. |
| def:subscriptionChange | requiresPayment | boolean | yes | no | none | True when confirmation requires an immediate upgrade payment. |
| def:subscriptionChange | effectiveAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | currentPeriodEnd | string | no | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | quoteHash | string | yes | no | minLength:64, maxLength:64 | ATM-authored hash of the exact revision, CIDs, money, cadence, policy, and expiry shown to the payer. |
| def:subscriptionChange | quoteExpiresAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | confirmedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | paidAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | appliedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | failureCode | string | no | no | maxLength:64 | No description in lexicon yet. |
| def:subscriptionChange | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:subscriptionChange | updatedAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.payment.proof2 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | cid | string | yes | no | format:cid | Canonical payment-v1 commitment CID string: lowercase unpadded base32 CIDv1, DAG-CBOR codec 0x71, SHA-256 with a 32-byte digest. |
| record | profile | string<money-atmosphere-v1> | yes | no | maxLength:64 | Commitment-profile token identifying the exact byte-level commitment algorithm. |
money.atmosphere.payment.receipt8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | recipient | string | yes | no | format:did | DID of the party receiving the payment. |
| record | value | union<money.atmosphere.payment.defs#fiatMinor | money.atmosphere.payment.defs#assetAtomic> | yes | no | none | The single authoritative value satisfied by this settlement: either fiat minor units or fungible-asset atomic units. |
| record | transactionId | string | yes | no | minLength:1, maxLength:64 | Opaque public transaction identifier scoped to `transactionIdAuthority`, unique within that authority's namespace per payment, for deduplication; money-atmosphere-v1 requires the exact full-match grammar ^[\x21-\x7E]{1,64}$ (visible printable ASCII with no spaces). |
| record | transactionIdAuthority | string | yes | no | format:did | DID whose namespace owns `transactionId`. |
| record | settledAt | string | yes | no | format:datetime | UTC instant at which the canonical accepted-settlement authority asserts the settlement transition occurred (millisecond precision, Z suffix). |
| record | nonce | string | yes | no | minLength:32, maxLength:32 | Exactly 32 lowercase hexadecimal characters (implementations MUST enforce ^[0-9a-f]{32}$) encoding 128 bits that MUST be generated by a cryptographically secure random generator, once per payment, never derived from other fields, never reused. |
| record | proofs | array<ref:com.atproto.repo.strongRef> | yes | no | minLength:1, maxLength:10 | References to immutable money.atmosphere.payment.proof records in each attester's own repository. |
| record | entitlements | array<ref:com.atproto.repo.strongRef> | no | no | minLength:1, maxLength:100 | Optional purchase-context strongRefs whose exact committed URI and CID values, when a verifier accepts a trusted proof for the receipt, are bound to the historical settlement assertion so an application can use them as purchase evidence after separately authenticating and validating each referenced record; the payment proof does not prove the target exists or authenticate its author, repository, schema, or meaning, does not make a handle authority durable, and the references are not live entitlement grants or bearer credentials (any lexicon). |
money.atmosphere.payment.recurringReceipt10 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | recipient | string | yes | no | format:did | DID of the party receiving the payment. |
| record | value | union<money.atmosphere.payment.defs#fiatMinor | money.atmosphere.payment.defs#assetAtomic> | yes | no | none | The single authoritative value satisfied by the initial settlement that begins this recurring relationship, after applicable discounts and charged tax. |
| record | transactionId | string | yes | no | minLength:1, maxLength:64 | Opaque public transaction identifier scoped to `transactionIdAuthority`, unique within that authority's namespace per payment, for deduplication; money-atmosphere-v1 requires the exact full-match grammar ^[\x21-\x7E]{1,64}$ (visible printable ASCII with no spaces). |
| record | transactionIdAuthority | string | yes | no | format:did | DID whose namespace owns `transactionId`. |
| record | settledAt | string | yes | no | format:datetime | UTC instant at which the canonical accepted-settlement authority asserts the recurring relationship's initial settlement occurred (millisecond precision, Z suffix). |
| record | nonce | string | yes | no | minLength:32, maxLength:32 | Exactly 32 lowercase hexadecimal characters (implementations MUST enforce ^[0-9a-f]{32}$) encoding 128 bits that MUST be generated by a cryptographically secure random generator, once per payment, never derived from other fields, never reused. |
| record | interval | string<day | week | month | year> | yes | no | minLength:1, maxLength:16 | Billing interval unit accepted when the recurring relationship's initial settlement occurred (cadence snapshot). |
| record | intervalCount | integer | yes | no | minimum:1, maximum:366 | Multiplier applied to `interval` (e.g. |
| record | proofs | array<ref:com.atproto.repo.strongRef> | yes | no | minLength:1, maxLength:10 | References to immutable money.atmosphere.payment.proof records in each attester's own repository. |
| record | entitlements | array<ref:com.atproto.repo.strongRef> | no | no | minLength:1, maxLength:100 | Optional purchase-context strongRefs whose exact committed URI and CID values, when a verifier accepts a trusted proof for this recurring receipt, are bound only to the historical initial-settlement assertion for this recurring relationship so an application can use them as purchase evidence after separately authenticating and validating each referenced record; the proof establishes neither a renewal nor current subscription or term standing, does not prove the target exists or authenticate its author, repository, schema, or meaning, does not make a handle authority durable, and the references are not live entitlement grants or bearer credentials (any lexicon). |
money.atmosphere.payment.refundPayment13 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| input | invoiceId | string | no | no | maxLength:256 | Exact processor invoice cycle to refund for a subscription payment. |
| input | amount | integer | no | no | minimum:1 | Refund amount in the smallest currency unit. |
| input | reasonCode | string<requested-by-customer | duplicate | fraudulent> | no | no | maxLength:32 | Processor-aligned refund reason code. |
| input | reason | string | no | no | maxLength:512 | Optional free-text reason surfaced in refund webhooks and dashboards. |
| input | cancelSubscription | boolean | no | no | none | For subscription payments, also cancel the underlying subscription so it stops billing. |
| input | idempotencyKey | string | no | no | maxLength:256 | Optional caller-supplied idempotency key. |
| output | refundId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| output | invoiceId | string | no | no | maxLength:256 | Exact processor invoice cycle the refund was applied to, when invoice-backed. |
| output | status | string<pending | succeeded | failed | canceled | requires-action> | yes | no | maxLength:64 | Processor refund status at creation time. |
| output | amount | integer | yes | no | minimum:1 | Amount of this refund in the smallest currency unit. |
| output | amountRefundedTotal | integer | yes | no | minimum:0 | Cumulative refunded amount for the exact invoice cycle when invoiceId is present; otherwise for the payment, in the smallest currency unit. |
| output | paymentStatus | string | yes | no | maxLength:64 | No description in lexicon yet. |
money.atmosphere.payment.registerCreatorProof9 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| input | creatorProofUri | string | yes | no | format:at-uri | No description in lexicon yet. |
| input | creatorProofCid | string | yes | no | format:cid | No description in lexicon yet. |
| input | proofLifecycleGeneration | integer | no | no | minimum:1, maximum:9007199254740991 | Exact verified broker-proof lifecycle generation from the delegated request. |
| input | proofLifecycleState | string<verified> | no | no | maxLength:16 | Verified state paired with proofLifecycleGeneration. |
| output | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| output | creatorProofUri | string | yes | no | format:at-uri | No description in lexicon yet. |
| output | creatorProofCid | string | yes | no | format:cid | No description in lexicon yet. |
| output | alreadyRegistered | boolean | no | no | none | No description in lexicon yet. |
money.atmosphere.payment.registerPayerRecord9 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| input | payerRecordUri | string | yes | no | format:at-uri | No description in lexicon yet. |
| input | payerRecordCid | string | yes | no | format:cid | No description in lexicon yet. |
| input | proofLifecycleGeneration | integer | no | no | minimum:1, maximum:9007199254740991 | Exact verified broker-proof lifecycle generation from the delegated request. |
| input | proofLifecycleState | string<verified> | no | no | maxLength:16 | Verified state paired with proofLifecycleGeneration. |
| output | paymentId | string | yes | no | maxLength:256 | No description in lexicon yet. |
| output | payerRecordUri | string | yes | no | format:at-uri | No description in lexicon yet. |
| output | payerRecordCid | string | yes | no | format:cid | No description in lexicon yet. |
| output | alreadyRegistered | boolean | no | no | none | No description in lexicon yet. |
money.atmosphere.payment.verifyReceipt69 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | uri | string | yes | no | format:at-uri | AT-URI of the exact receipt record to verify. |
| params | cid | string | yes | no | format:cid | Canonical AT repository-record CID of the exact generation being verified: lowercase unpadded base32 CIDv1, dag-cbor codec, sha2-256 with a 32-byte digest. |
| params | attester | string | no | no | format:did | Optional single-attester FILTER intersected with the service's fixed trust policy. |
| output | result | union<#current | #cidMismatch | #absent | #unavailable> | yes | no | none | Exactly one variant. |
| def:current | block | ref:#blockEvidence | yes | no | none | Exact authenticated repository block evidence for this generation. |
| def:current | record | unknown | no | no | none | The exact decoded receipt record. |
| def:current | author | string | yes | no | format:did | Author DID derived from authenticated provenance; the DID used in the commitment recomputation. |
| def:current | settlement | union<#attested | #recordInvalid | #unattested | #invalidEvidence | #unsupportedProfile | #proofReplaced | #proofAbsent | #settlementUnavailable> | yes | no | none | Settlement-evidence bundle (with lifecycle nested under #attested). |
| def:current | evidenceAsOf | string | yes | no | format:datetime | The evidence boundary used to produce this response. |
| def:attested | proof | ref:com.atproto.repo.strongRef | yes | no | none | Exact reference (uri + record CID) to the immutable proof record. |
| def:attested | proofRecord | unknown | yes | no | none | The verifying proof record, verbatim. |
| def:attested | attester | string | yes | no | format:did | Authenticated controlling DID of the attesting repository. |
| def:attested | lifecycle | union<#lifecycleKnown | #lifecycleMissing | #lifecycleInvalid | #lifecycleUnavailable | #noLifecycleAuthority> | yes | no | none | Lifecycle-evidence bundle. |
| def:attested | lifecyclePaths | array<union<#pathValidated | #pathMissing | #pathInvalid | #pathUnresolved>> | yes | no | maxLength:10 | EXHAUSTIVE typed enumeration of EVERY logical lifecycle candidate path — the same set the aggregation evaluated (bounded by the receipt's proofs maxLength, which is also 10). |
| def:invalidEvidence | proof | ref:com.atproto.repo.strongRef | yes | no | none | Exact reference to the proof record that failed verification (deterministically selected when several fail; see COMMITMENT_PROFILE.md). |
| def:invalidEvidence | block | ref:#blockEvidence | yes | no | none | Exact authenticated proof block evidence. |
| def:invalidEvidence | reason | string<commitment-mismatch | proof-malformed> | yes | no | maxLength:64 | Machine-readable failure class (kebab-case). |
| def:settlementUnavailable | attester | string | yes | no | format:did | The unreachable attesting repository’s DID (deterministically selected when several are unreachable). |
| def:settlementUnavailable | retryable | boolean | yes | no | none | OR of the transient classifications across ALL unreachable trusted attesters: true when at least one failure looked transient. |
| def:lifecycleKnown | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:lifecycleKnown | cid | string | yes | no | format:cid | Record CID of the exact lifecycle generation this response reports. |
| def:lifecycleKnown | record | unknown | yes | no | none | The lifecycle record at the returned exact cid, verbatim. |
| def:lifecycleKnown | block | ref:#blockEvidence | yes | no | none | Exact authenticated lifecycle block evidence. |
| def:lifecycleKnown | proof | ref:com.atproto.repo.strongRef | yes | no | none | The lifecycle path's own verifying proof (its exact strongRef) — the path this evidence is bound to. |
| def:lifecycleUnavailable | proof | ref:com.atproto.repo.strongRef | yes | no | none | The representative unresolved candidate path (deterministically selected by lowest bytewise path triple among ALL unresolved candidates). |
| def:lifecycleUnavailable | cause | union<#causeSidecarUnreachable | #causeProofUnreachable | #causeProofReplaced | #causeProofAbsent | #causeProofUnsupportedProfile | #causeProofInvalid> | yes | no | none | Why the representative path is unresolved — each cause variant schema-REQUIRES its own evidence. |
| def:lifecycleUnavailable | retryable | boolean | yes | no | none | Aggregate retryability. |
| def:cidMismatch | currentCid | string | yes | no | format:cid | The record CID currently at the uri, from an authenticated current-head read. |
| def:cidMismatch | evidenceAsOf | string | yes | no | format:datetime | No description in lexicon yet. |
| def:absent | confirmedAt | string | yes | no | format:datetime | When current-repository absence was authoritatively confirmed. |
| def:unavailable | retryable | boolean | yes | no | none | No description in lexicon yet. |
| def:unsupportedProfile | proof | ref:com.atproto.repo.strongRef | yes | no | none | Exact reference to the unjudgeable proof (deterministically selected when several). |
| def:unsupportedProfile | profile | string | yes | no | maxLength:64 | The unrecognized profile token, verbatim. |
| def:lifecycleInvalid | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:lifecycleInvalid | cid | string | yes | no | format:cid | Record CID of the exact offending generation. |
| def:lifecycleInvalid | block | ref:#blockEvidence | yes | no | none | Exact authenticated lifecycle block evidence. |
| def:lifecycleInvalid | reason | string<record-invalid | wrong-proof-binding> | yes | no | maxLength:64 | Machine-readable failure class (kebab-case). |
| def:lifecycleInvalid | proof | ref:com.atproto.repo.strongRef | yes | no | none | The candidate path (its proof strongRef) whose sidecar is unusable. |
| def:proofReplaced | proof | ref:com.atproto.repo.strongRef | yes | no | none | The receipt’s pinned reference (deterministically selected when several; see COMMITMENT_PROFILE.md). |
| def:proofReplaced | currentCid | string | yes | no | format:cid | The record CID currently at the URI, from the authenticated current-head read. |
| def:proofAbsent | proof | ref:com.atproto.repo.strongRef | yes | no | none | The receipt’s pinned reference (deterministically selected when several; see COMMITMENT_PROFILE.md). |
| def:proofAbsent | confirmedAt | string | yes | no | format:datetime | When current absence was authoritatively confirmed. |
| def:lifecycleMissing | confirmedAt | string | yes | no | format:datetime | When current absence was authoritatively confirmed. |
| def:lifecycleMissing | proof | ref:com.atproto.repo.strongRef | yes | no | none | The candidate path (its proof strongRef) whose deterministic sidecar location was authoritatively empty. |
| def:causeSidecarUnreachable | transient | boolean | yes | no | none | This path's own failure classification per the profile's taxonomy. |
| def:causeProofUnreachable | transient | boolean | yes | no | none | This path's own failure classification per the profile's taxonomy. |
| def:causeProofReplaced | currentCid | string | yes | no | format:cid | The record CID currently at the URI. |
| def:causeProofAbsent | confirmedAt | string | yes | no | format:datetime | When current absence was authoritatively confirmed. |
| def:causeProofUnsupportedProfile | profile | string | yes | no | maxLength:64 | The unrecognized profile token, verbatim. |
| def:causeProofInvalid | reason | string<commitment-mismatch | proof-malformed> | yes | no | maxLength:64 | Machine-readable failure class (kebab-case). |
| def:causeProofInvalid | block | ref:#blockEvidence | yes | no | none | Exact authenticated proof block evidence. |
| def:pathValidated | proof | ref:com.atproto.repo.strongRef | yes | no | none | The path (its proof strongRef). |
| def:pathValidated | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:pathValidated | cid | string | yes | no | format:cid | Exact record CID observed at this path — the high-water candidate generation. |
| def:pathValidated | status | string<settled | refunded | partially-refunded | disputed | reversed> | yes | no | maxLength:64 | The record's status (kebab-case; open set — unknown values fail closed for authorization). |
| def:pathValidated | revision | integer | yes | no | minimum:1, maximum:9007199254740991 | The record's per-path revision. |
| def:pathValidated | record | unknown | yes | no | none | The lifecycle record at the returned cid, verbatim. |
| def:pathValidated | block | ref:#blockEvidence | yes | no | none | Exact authenticated lifecycle block evidence. |
| def:pathMissing | proof | ref:com.atproto.repo.strongRef | yes | no | none | The path (its proof strongRef). |
| def:pathMissing | confirmedAt | string | yes | no | format:datetime | When current absence was authoritatively confirmed. |
| def:pathInvalid | proof | ref:com.atproto.repo.strongRef | yes | no | none | The path (its proof strongRef). |
| def:pathInvalid | uri | string | yes | no | format:at-uri | No description in lexicon yet. |
| def:pathInvalid | cid | string | yes | no | format:cid | Record CID of the exact offending generation. |
| def:pathInvalid | block | ref:#blockEvidence | yes | no | none | Exact authenticated lifecycle block evidence. |
| def:pathInvalid | reason | string<record-invalid | wrong-proof-binding> | yes | no | maxLength:64 | Machine-readable failure class (kebab-case). |
| def:blockEvidence | encodedBytes | integer | yes | no | minimum:0, maximum:9007199254740991 | No description in lexicon yet. |
| def:blockEvidence | bytes | bytes | no | no | maxLength:65536 | No description in lexicon yet. |
| def:pathUnresolved | proof | ref:com.atproto.repo.strongRef | yes | no | none | The path (its proof strongRef). |
| def:pathUnresolved | cause | union<#causeSidecarUnreachable | #causeProofUnreachable | #causeProofReplaced | #causeProofAbsent | #causeProofUnsupportedProfile | #causeProofInvalid> | yes | no | none | Why this path is unresolved — each cause variant schema-REQUIRES its own evidence. |
money.atmosphere.payment.verifyRecord13 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | paymentUri | string | yes | no | format:at-uri | Exact AT-URI of a network.attested.payment record in its payer-of-record repository. |
| params | paymentCid | string | yes | no | format:cid | Exact record CID paired with paymentUri. |
| params | recipient | string | no | no | format:at-identifier | Optional expected recipient DID or handle. |
| output | verified | boolean | yes | no | none | True only when this exact payer record is indexed and backed by ATM's current active broker-proof generation. |
| output | payment | ref:com.atproto.repo.strongRef | no | no | none | The exact verified payment record generation. |
| output | paymentRecord | union<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled> | no | no | none | Verbatim public payment record body for CID and attestation-CID verification. |
| output | payer | string | no | no | format:did | Payer-of-record repository DID. |
| output | recipient | string | no | no | format:did | No description in lexicon yet. |
| output | paymentType | string<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled> | no | no | format:nsid | No description in lexicon yet. |
| output | attestationCid | string | no | no | format:cid | CID the broker proof attests after attested.network canonicalization. |
| output | broker | string | no | no | format:did | Trusted broker DID that authored brokerProof. |
| output | brokerProof | ref:com.atproto.repo.strongRef | no | no | none | Exact current active network.attested.payment.proof generation. |
| output | brokerProofRecord | ref:network.attested.payment.proof | no | no | none | Verbatim public broker-proof body for independent lifecycle and CID verification. |
money.atmosphere.price22 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | offerUri | string | yes | no | format:at-uri | AT-URI of the offer record this price belongs to: a money.atmosphere.product, money.atmosphere.membership.tier, or tickets.atmosphere.ticketType in the same repo. |
| record | lookupKey | string | no | no | maxLength:200 | No description in lexicon yet. |
| record | nickname | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| record | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| record | unitAmount | integer | no | no | minimum:0 | Amount in the smallest unit of currency (e.g. |
| record | customUnitAmount | ref:#customUnitAmount | no | no | none | Stripe-compatible customer-chosen amount configuration. |
| record | billingScheme | string<per-unit | tiered> | no | no | maxLength:32 | Stripe-compatible billing scheme. |
| record | tiersMode | string<graduated | volume> | no | no | maxLength:32 | Stripe-compatible tier mode when billingScheme is tiered. |
| record | tiers | array<ref:#tier> | no | no | maxLength:100 | Stripe-compatible quantity or usage tiers for future non-Supper apps. |
| record | type | string<one-time | recurring> | yes | no | maxLength:16 | No description in lexicon yet. |
| record | recurring | ref:#recurring | no | no | none | No description in lexicon yet. |
| record | archived | boolean | no | no | none | No description in lexicon yet. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| record | updatedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:tier | upTo | integer | no | no | minimum:1 | Inclusive upper quantity bound for this tier, matching Stripe tiers[].up_to. |
| def:tier | unitAmount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:tier | flatAmount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:customUnitAmount | enabled | boolean | yes | no | none | No description in lexicon yet. |
| def:customUnitAmount | minimum | integer | no | no | minimum:1 | Minimum buyer-entered amount, in the smallest unit of currency. |
| def:customUnitAmount | maximum | integer | no | no | minimum:1 | Maximum buyer-entered amount, in the smallest unit of currency. |
| def:recurring | interval | string<day | week | month | year> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:recurring | intervalCount | integer | no | no | minimum:1, maximum:1095 | Number of interval units between billings (Stripe allows up to 3 years per cycle, e.g. |
money.atmosphere.product13 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| record | sku | string | no | no | maxLength:64 | No description in lexicon yet. |
| record | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| record | kind | string<physical | digital | commission | membership | service | ticket | support | other> | yes | no | maxLength:32 | Open coarse classification. |
| record | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| record | image | ref:#image | no | no | none | Public product image. |
| record | variantOf | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| record | archived | boolean | no | no | none | No description in lexicon yet. |
| record | archivedAt | string | no | no | format:datetime | No description in lexicon yet. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| record | updatedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:image | blob | blob | yes | no | none | No description in lexicon yet. |
| def:image | alt | string | no | no | maxLength:3000, maxGraphemes:300 | No description in lexicon yet. |
money.atmosphere.segments.listMembers11 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | segmentKey | string<at-risk-churn | high-value | lapsed> | yes | no | maxLength:32 | Which computed cohort to list. |
| params | environment | string<test | live> | no | no | maxLength:16 | Which app environment to read. |
| params | limit | integer | no | no | minimum:1, maximum:200 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | members | array<ref:#member> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:member | buyerDid | string | no | no | format:did | Buyer DID. |
| def:member | emailMasked | string | no | no | maxLength:320 | Pre-masked email hint (e.g. |
| def:member | currency | string | no | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code. |
| def:member | amount | integer | no | no | minimum:0 | Display figure for the cohort (e.g. |
| def:member | computedAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.segments.requestMessage5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | segmentKey | string<at-risk-churn | high-value | lapsed> | yes | no | maxLength:32 | Which computed cohort to message. |
| input | environment | string<test | live> | no | no | maxLength:16 | Which app environment to target. |
| input | messageType | string | yes | no | maxLength:64 | App-defined opaque message identifier (e.g. |
| output | memberCount | integer | yes | no | minimum:0 | Number of cohort members at request time. |
| output | requestedAt | string | yes | no | format:datetime | No description in lexicon yet. |
money.atmosphere.temp.membership.defs5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| def:spaceBindingView | space | string | yes | no | maxLength:1600 | Exact creator-owned money.atmosphere.temp.membership.access alpha space reference represented by this binding. |
| def:spaceBindingView | active | boolean | yes | no | none | Whether this exact space URI is currently registered and not terminally revoked. |
| def:spaceBindingView | managingApp | string | yes | no | maxLength:512 | Exact ATM DID service identifier associated with this pinned alpha profile. |
| def:spaceBindingView | protocolProfile | string | yes | no | maxLength:256 | Pinned alpha profile, ATM overlay schema-set fingerprint, and key/data epoch governing this binding. |
| def:spaceBindingView | revision | integer | yes | no | minimum:1 | Monotonic append-only revision for this exact space URI. |
money.atmosphere.temp.membership.registerSpace4 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | space | string | yes | no | maxLength:1600 | Creator-owned money.atmosphere.temp.membership.access alpha space. The parser additionally enforces the pinned proposal-0016 space-ref grammar, which the released Lexicon toolchain does not yet implement. |
| input | environment | string<test | live> | yes | no | maxLength:8 | The environment is part of the immutable space boundary. Current ATM writers and the beta authority fail closed on values other than test and live; a future vocabulary extension requires a new versioned space key. |
| input | program | ref:com.atproto.repo.strongRef | yes | no | none | Exact creator-owned money.atmosphere.membership.program record. |
| input | tier | ref:com.atproto.repo.strongRef | no | no | none | Optional exact creator-owned money.atmosphere.membership.tier record. The alpha binds program-wide or exact-tier spaces only; interoperable cumulative access is projected into every eligible exact-tier space rather than expressed as a tier-and-above flag. |
money.atmosphere.temp.membership.revokeSpace1 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | space | string | yes | no | maxLength:1600 | Creator-owned money.atmosphere.temp.membership.access alpha space. The parser additionally enforces the pinned proposal-0016 space-ref grammar, which the released Lexicon toolchain does not yet implement. |
attested.network namespace
ATM consumes these schemas as an external spec. Do not publish or extend them from the ATM namespace.
| NSID | Kind | Route | Auth | Status | Summary | Links |
|---|---|---|---|---|---|---|
| network.attested.payment.initiate | procedure | /xrpc/network.attested.payment.initiate | attested.network servicer auth | external spec | Begin a payment flow. | |
| network.attested.payment.lookup | query | /xrpc/network.attested.payment.lookup | Public or app-scoped read | external spec | Look up verified payment records between a payer and a recipient. | |
| network.attested.payment.oneTime | record | PDS | PDS record | external spec | A one-time payment from a supporter to a creator. | |
| network.attested.payment.proof | record | PDS | PDS record | external spec | A remote attestation record stored in the attestor's repository (creator or broker). | |
| network.attested.payment.recurring | record | PDS | PDS record | external spec | A recurring payment commitment. | |
| network.attested.payment.scheduled | record | PDS | PDS record | external spec | A fixed series of payments. | |
| network.attested.payment.status | query | /xrpc/network.attested.payment.status | Public or app-scoped read | external spec | Check the status of a payment initiated via network.attested.payment.initiate. |
attested.network fields
network.attested.payment.initiate3 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | product | string | yes | no | none | Product identifier for the payment being initiated. |
| output | url | string | yes | no | format:uri | URL to direct the payer to in a browser to complete the payment flow (entering payment details, confirming terms, etc). |
| output | token | string | yes | no | none | Opaque token used to poll payment status via network.attested.payment.status. |
network.attested.payment.lookup6 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | payer | string | yes | no | format:did | DID of the payer (supporter). |
| params | brokers | array<string> | no | no | none | Optional list of broker DIDs. |
| params | recipient | string | yes | no | format:did | DID of the recipient (creator). |
| params | paymentType | string<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled> | no | no | format:nsid | Optional filter by payment collection. |
| params | entitlements | array<string> | no | no | none | Optional list of entitlement AT-URIs. |
| output | payments | array<union<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled>> | yes | no | none | List of verified payment records. |
network.attested.payment.oneTime8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | memo | string | no | no | maxLength:1024, maxGraphemes:256 | Optional note from the supporter. |
| record | txnid | string | yes | no | maxLength:64 | Unique transaction identifier for deduplication. |
| record | amount | integer | yes | no | minimum:1 | Payment amount in the smallest unit of the given currency (e.g. |
| record | subject | string | yes | no | format:did | DID of the creator receiving payment. |
| record | currency | string | yes | no | minLength:3, maxLength:3 | ISO 4217 currency code (e.g. |
| record | createdAt | string | yes | no | format:datetime | Timestamp of record creation. |
| record | signatures | array<ref:com.atproto.repo.strongRef> | no | no | none | Attestation entries. |
| record | entitlements | array<ref:com.atproto.repo.strongRef> | no | no | none | Optional list of strong references to records representing goods or services the payer is entitled to as a result of this payment. |
network.attested.payment.proof2 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | cid | string | yes | no | format:cid | Attestation CID computed per the badge.blue spec from the payment record, metadata, and repository DID. |
| record | status | string | no | no | none | Optional status indicator for the attestation (implementation-defined). |
network.attested.payment.recurring9 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | unit | string<monthly | quarterly | semiannual | yearly> | yes | no | none | Billing period. |
| record | txnid | string | yes | no | maxLength:64 | Unique transaction identifier for deduplication. |
| record | amount | integer | yes | no | minimum:1 | Amount per billing period in the smallest unit of the given currency. |
| record | subject | string | yes | no | format:did | DID of the creator receiving payment. |
| record | currency | string | yes | no | minLength:3, maxLength:3 | ISO 4217 currency code (e.g. |
| record | createdAt | string | yes | no | format:datetime | Timestamp of initial subscription creation. |
| record | frequency | integer | no | no | minimum:1 | Billing frequency multiplier applied to the unit (e.g. |
| record | signatures | array<ref:com.atproto.repo.strongRef> | no | no | none | Attestation entries. |
| record | entitlements | array<ref:com.atproto.repo.strongRef> | no | no | none | Optional list of strong references to records representing goods or services the payer is entitled to as a result of this payment. |
network.attested.payment.scheduled9 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | unit | string<monthly | quarterly | semiannual | yearly> | yes | no | none | Interval between scheduled payments. |
| record | count | integer | yes | no | minimum:2, maximum:60 | Total number of scheduled payments. |
| record | txnid | string | yes | no | maxLength:64 | Unique transaction identifier for deduplication. |
| record | amount | integer | yes | no | minimum:1 | Amount per payment in the smallest unit of the given currency. |
| record | subject | string | yes | no | format:did | DID of the creator receiving payment. |
| record | currency | string | yes | no | minLength:3, maxLength:3 | ISO 4217 currency code (e.g. |
| record | createdAt | string | yes | no | format:datetime | Timestamp of schedule creation; also the first payment date. |
| record | signatures | array<ref:com.atproto.repo.strongRef> | no | no | none | Attestation entries. |
| record | entitlements | array<ref:com.atproto.repo.strongRef> | no | no | none | Optional list of strong references to records representing goods or services the payer is entitled to as a result of this payment. |
network.attested.payment.status3 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | token | string | yes | no | none | Token returned from network.attested.payment.initiate. |
| output | ref | ref:com.atproto.repo.strongRef | no | no | none | Present when status is 'completed'. |
| output | status | string<pending | completed | failed> | yes | no | none | Current payment status. |
Tickets namespace
Tickets contracts live in the shared local lexicon set so ATM docs can reference ticket payments and app integrations without becoming the consumer-facing event app.
| NSID | Kind | Route | Auth | Status | Summary | Links |
|---|---|---|---|---|---|---|
| tickets.atmosphere.acceptCollaboration | procedure | /xrpc/tickets.atmosphere.acceptCollaboration | Service-auth | beta draft | Accept a pending co-organizer invitation (dual-consent: app service-auth plus the co-organizer's own assertion). | |
| tickets.atmosphere.archiveTicketType | procedure | /xrpc/tickets.atmosphere.archiveTicketType | Service-auth | beta draft | Archive an organizer-owned ATM ticket type. | |
| tickets.atmosphere.cancelTicketEvent | procedure | /xrpc/tickets.atmosphere.cancelTicketEvent | Service-auth | beta draft | Irreversibly cancel an ATM ticketed event. | |
| tickets.atmosphere.checkInList | record | PDS | PDS record | beta draft | Public check-in list label for an event. | |
| tickets.atmosphere.checkInTicket | procedure | /xrpc/tickets.atmosphere.checkInTicket | Service-auth | beta draft | Verify and check in a private ATM Tickets scan token. | |
| tickets.atmosphere.claimFreeTicket | procedure | /xrpc/tickets.atmosphere.claimFreeTicket | Service-auth | beta draft | Atomically claim zero-price scarce tickets for a verified buyer without checkout redirect. | |
| tickets.atmosphere.claimWaitlistOffer | procedure | /xrpc/tickets.atmosphere.claimWaitlistOffer | Service-auth | beta draft | Claim a ticket waitlist OFFER by starting checkout against its already-reserved offer hold. | |
| tickets.atmosphere.createTicketEvent | procedure | /xrpc/tickets.atmosphere.createTicketEvent | Service-auth | beta draft | Create or upsert an organizer-owned ATM ticketed-event config shell for a public event. | |
| tickets.atmosphere.createTicketHold | procedure | /xrpc/tickets.atmosphere.createTicketHold | Service-auth | beta draft | Atomically reserve ticket capacity and return an ATM checkout URL. | |
| tickets.atmosphere.createTicketType | procedure | /xrpc/tickets.atmosphere.createTicketType | Service-auth | beta draft | Create an organizer-owned ATM ticket type and optional public ticket-type record refs for an event. | |
| tickets.atmosphere.defs | defs | /xrpc/tickets.atmosphere.defs | App service-auth | beta draft | No description in lexicon yet. | |
| tickets.atmosphere.getTicketAvailability | query | /xrpc/tickets.atmosphere.getTicketAvailability | Service-auth | beta draft | Read app-scoped ticket availability derived from private ATM holds and issued tickets. | |
| tickets.atmosphere.inviteOrganizerCollaboration | procedure | /xrpc/tickets.atmosphere.inviteOrganizerCollaboration | Service-auth | beta draft | Invite a co-organizer to operationally co-run a ticketed event (Part A: operational delegation only). | |
| tickets.atmosphere.joinWaitlist | procedure | /xrpc/tickets.atmosphere.joinWaitlist | Service-auth | beta draft | Join the FIFO waitlist for a sold-out ticket type. | |
| tickets.atmosphere.listBuyerTickets | query | /xrpc/tickets.atmosphere.listBuyerTickets | Service-auth | beta draft | List app-scoped issued tickets for a buyer or payment. | |
| tickets.atmosphere.listCollaborations | procedure | /xrpc/tickets.atmosphere.listCollaborations | Public or app-scoped read | beta draft | List organizer collaborations for an event (authorized via event control) or the calling co-organizer's own collaboration rows. | |
| tickets.atmosphere.listEventWaitlist | procedure | /xrpc/tickets.atmosphere.listEventWaitlist | Public or app-scoped read | beta draft | List an organizer's event waitlist: a per-ticket-type rollup plus the paginated FIFO queue, each entry with its position and current offer status. | |
| tickets.atmosphere.listOrganizerTickets | query | /xrpc/tickets.atmosphere.listOrganizerTickets | Service-auth | beta draft | List app-scoped issued tickets for an organizer or event. | |
| tickets.atmosphere.listPublicConfig | query | /xrpc/tickets.atmosphere.listPublicConfig | Public or app-scoped read | beta draft | List indexed public tickets.atmosphere ticket config records. | |
| tickets.atmosphere.listTicketFormResponses | procedure | /xrpc/tickets.atmosphere.listTicketFormResponses | Public or app-scoped read | beta draft | List the full private attendee form responses for an organizer's own event. | |
| tickets.atmosphere.releaseFreeTicket | procedure | /xrpc/tickets.atmosphere.releaseFreeTicket | Service-auth | beta draft | Release a buyer's free-claim tickets back to capacity — the inverse of claimFreeTicket for un-RSVP flows. | |
| tickets.atmosphere.releaseTicketHold | procedure | /xrpc/tickets.atmosphere.releaseTicketHold | Service-auth | beta draft | Release an active ticket hold before checkout completes. | |
| tickets.atmosphere.revokeCollaboration | procedure | /xrpc/tickets.atmosphere.revokeCollaboration | Service-auth | beta draft | Revoke a co-organizer collaboration. | |
| tickets.atmosphere.setEventCapacity | procedure | /xrpc/tickets.atmosphere.setEventCapacity | Service-auth | beta draft | Set, change, or clear the shared EVENT capacity — one pool every ticket type of the event draws from, in addition to any per-type caps. | |
| tickets.atmosphere.setTicketTypeForm | procedure | /xrpc/tickets.atmosphere.setTicketTypeForm | App service-auth | beta draft | Set (or clear) the private per-ticket-type attendee form for a ticketed event. | |
| tickets.atmosphere.ticketedEvent | record | PDS | PDS record | beta draft | Organizer-published ticketing anchor for an event: marks the event as ticketed and optionally discloses its ticket types in display order. | |
| tickets.atmosphere.ticketType | record | PDS | PDS record | beta draft | Organizer-owned portable ticket type metadata for an AT Protocol event. | |
| tickets.atmosphere.updateTicketEvent | procedure | /xrpc/tickets.atmosphere.updateTicketEvent | Service-auth | beta draft | Update an app-scoped ATM ticketed-event config shell for a public event. | |
| tickets.atmosphere.updateTicketType | procedure | /xrpc/tickets.atmosphere.updateTicketType | Service-auth | beta draft | Update organizer-owned ATM ticket type metadata. | |
| tickets.atmosphere.verifyTicket | procedure | /xrpc/tickets.atmosphere.verifyTicket | Service-auth | beta draft | Verify a private ATM Tickets scan token without mutating check-in state. |
Tickets fields
tickets.atmosphere.acceptCollaboration5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | collaborationId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | coOrganizerDid | string | yes | no | format:did | The accepting co-organizer. |
| input | coOrganizerAssertionJwt | string | yes | no | maxLength:8192 | REQUIRED short-lived user service-auth JWT issued BY coOrganizerDid to ATM, scoped to tickets.atmosphere.acceptCollaboration. |
| output | collaboration | ref:tickets.atmosphere.defs#organizerCollaboration | yes | no | none | No description in lexicon yet. |
tickets.atmosphere.archiveTicketType7 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | ticketTypeId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | organizerDid | string | no | no | format:did | The current primary organizer authorizing this mutation. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional only for an app archiving its own event's ticket type. |
| output | ticketType | ref:#ticketType | yes | no | none | No description in lexicon yet. |
| def:ticketType | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketType | status | string<archived> | yes | no | maxLength:32 | No description in lexicon yet. |
tickets.atmosphere.cancelTicketEvent13 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | organizerDid | string | no | no | format:did | The current primary organizer authorizing cancellation. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional only for an app canceling its own event. |
| input | reason | string | yes | no | minLength:3, maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| output | cancellation | ref:#cancellation | yes | no | none | No description in lexicon yet. |
| def:cancellation | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:cancellation | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:cancellation | status | string<requested | already-canceled> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:cancellation | ticketCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:cancellation | paidTicketCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:cancellation | freeTicketCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:cancellation | releasedHoldCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
tickets.atmosphere.checkInList5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | event | ref:com.atproto.repo.strongRef | yes | no | none | CID-pinned strongRef to the canonical public community.lexicon.calendar.event record. |
| record | name | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| record | archived | boolean | no | no | none | True when this check-in list is archived. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| record | updatedAt | string | no | no | format:datetime | No description in lexicon yet. |
tickets.atmosphere.checkInTicket8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | ticketToken | string | yes | no | minLength:1, maxLength:4000 | No description in lexicon yet. |
| input | checkInListId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | scannerDid | string | no | no | format:did | App-asserted staff DID recorded in the private check-in audit log. |
| input | metadata | unknown | no | no | none | No description in lexicon yet. |
| output | status | string<checked-in | already-checked-in | not-valid> | yes | no | maxLength:32 | No description in lexicon yet. |
| output | checkedInAt | string | no | no | format:datetime | No description in lexicon yet. |
| output | ticket | ref:tickets.atmosphere.defs#issuedTicket | no | no | none | No description in lexicon yet. |
tickets.atmosphere.claimFreeTicket18 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | eventUri | string | no | no | format:at-uri | No description in lexicon yet. |
| input | buyerDid | string | yes | no | format:did | No description in lexicon yet. |
| input | buyerAssertionJwt | string | yes | no | maxLength:8192 | Required short-lived user service-auth JWT from buyerDid to ATM, scoped to tickets.atmosphere.claimFreeTicket. |
| input | customerEmail | string | no | no | maxLength:320 | Required delivery address for every new free-ticket claim. |
| input | customerName | string | no | no | minLength:1, maxLength:300 | Private attendee display name supplied by the buyer/app. |
| input | eventCode | string | no | no | minLength:3, maxLength:64 | Preferred buyer-entered event code. |
| input | items | array<ref:tickets.atmosphere.defs#ticketHoldItemRequest> | yes | no | minLength:1, maxLength:20 | No description in lexicon yet. |
| input | accessCode | string | no | no | minLength:3, maxLength:64 | Legacy visibility-only input. |
| input | idempotencyKey | string | no | no | minLength:1, maxLength:200 | No description in lexicon yet. |
| input | metadata | unknown | no | no | none | No description in lexicon yet. |
| output | claimId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | holdId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| output | items | array<ref:tickets.atmosphere.defs#ticketHoldItem> | yes | no | minLength:1, maxLength:20 | No description in lexicon yet. |
| output | tickets | array<ref:tickets.atmosphere.defs#issuedTicketWithContext> | yes | no | minLength:1, maxLength:1000 | No description in lexicon yet. |
| output | reused | boolean | no | no | none | No description in lexicon yet. |
tickets.atmosphere.claimWaitlistOffer16 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | waitlistId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | buyerDid | string | no | no | format:did | No description in lexicon yet. |
| input | buyerAssertionJwt | string | no | no | maxLength:8192 | Required whenever buyerDid is supplied: a short-lived user service-auth JWT from buyerDid to ATM, scoped to tickets.atmosphere.claimWaitlistOffer. |
| input | customerEmail | string | no | no | maxLength:320 | Private delivery/receipt hint. |
| input | customerName | string | no | no | minLength:1, maxLength:300 | Private attendee name for the issued ticket. |
| input | returnUrl | string | no | no | format:uri | No description in lexicon yet. |
| input | cancelUrl | string | no | no | format:uri | No description in lexicon yet. |
| output | waitlistId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | holdId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | token | string | yes | no | maxLength:500 | No description in lexicon yet. |
| output | url | string | yes | no | format:uri | No description in lexicon yet. |
| output | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| output | expiresAt | string | yes | no | format:datetime | No description in lexicon yet. |
| output | amount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| output | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code matching money.atmosphere.price. |
tickets.atmosphere.createTicketEvent8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | organizerDid | string | yes | no | format:did | No description in lexicon yet. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.createTicketEvent. |
| input | event | ref:tickets.atmosphere.defs#eventInput | yes | no | none | No description in lexicon yet. |
| input | status | string<active | paused | archived> | no | no | maxLength:32 | ATM ticket-sales lifecycle state. |
| input | eventCapacity | integer | no | no | minimum:1, maximum:250000 | Optional creation-time convenience for tickets.atmosphere.setEventCapacity: the shared capacity every ticket type of this event draws from. |
| input | metadata | unknown | no | no | none | No description in lexicon yet. |
| output | event | ref:tickets.atmosphere.defs#eventSummary | yes | no | none | No description in lexicon yet. |
tickets.atmosphere.createTicketHold24 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | eventUri | string | no | no | format:at-uri | No description in lexicon yet. |
| input | buyerDid | string | no | no | format:did | Signed-in buyer DID. |
| input | buyerAssertionJwt | string | no | no | maxLength:8192 | Short-lived user service-auth JWT from buyerDid to ATM, scoped to lxm money.atmosphere.payment.assertPayer. |
| input | customerEmail | string | no | no | maxLength:320 | Private delivery/receipt hint for ticket emails. |
| input | customerName | string | no | no | minLength:1, maxLength:300 | Private attendee display name supplied by the buyer/app. |
| input | eventCode | string | no | no | minLength:3, maxLength:64 | Preferred buyer-entered event code. |
| input | offerCode | string | no | no | minLength:3, maxLength:64 | Legacy discount-only input. |
| input | accessCode | string | no | no | minLength:3, maxLength:64 | Legacy visibility-only input. |
| input | items | array<ref:tickets.atmosphere.defs#ticketHoldItemRequest> | yes | no | minLength:1, maxLength:20 | No description in lexicon yet. |
| input | returnUrl | string | no | no | format:uri | No description in lexicon yet. |
| input | cancelUrl | string | no | no | format:uri | No description in lexicon yet. |
| input | idempotencyKey | string | no | no | minLength:1, maxLength:200 | No description in lexicon yet. |
| input | metadata | unknown | no | no | none | No description in lexicon yet. |
| output | holdId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | token | string | yes | no | maxLength:500 | No description in lexicon yet. |
| output | url | string | yes | no | format:uri | No description in lexicon yet. |
| output | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| output | expiresAt | string | yes | no | format:datetime | No description in lexicon yet. |
| output | amount | integer | yes | no | minimum:0 | Final buyer checkout amount in minor units after any order-level offer and passed-through ATM ticket fee. |
| output | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code matching money.atmosphere.price. |
| output | items | array<ref:tickets.atmosphere.defs#ticketHoldItem> | yes | no | minLength:1, maxLength:20 | No description in lexicon yet. |
| output | reused | boolean | no | no | none | No description in lexicon yet. |
tickets.atmosphere.createTicketType18 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | organizerDid | string | yes | no | format:did | No description in lexicon yet. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.createTicketType. |
| input | event | ref:tickets.atmosphere.defs#eventInput | yes | no | none | No description in lexicon yet. |
| input | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| input | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| input | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code matching money.atmosphere.price. |
| input | unitAmount | integer | yes | no | minimum:0, maximum:2000000 | Amount in the smallest unit of currency. |
| input | maxPerOrder | integer | no | no | minimum:1, maximum:50 | No description in lexicon yet. |
| input | saleStartsAt | string | no | no | format:datetime | No description in lexicon yet. |
| input | saleEndsAt | string | no | no | format:datetime | No description in lexicon yet. |
| input | ticketTypeRef | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| input | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| input | metadata | unknown | no | no | none | No description in lexicon yet. |
| input | visibility | string<public | hidden> | no | no | maxLength:16 | Private buyer-facing visibility (default public). |
| input | quantityTotal | integer | no | no | minimum:1, maximum:250000 | Optional per-type cap. |
| output | event | ref:tickets.atmosphere.defs#eventSummary | yes | no | none | No description in lexicon yet. |
| output | ticketType | ref:tickets.atmosphere.defs#ticketTypeSummary | yes | no | none | No description in lexicon yet. |
tickets.atmosphere.defs108 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| def:eventInput | uri | string | yes | no | format:at-uri | AT URI of the canonical public community.lexicon.calendar.event record. |
| def:eventInput | cid | string | no | no | format:cid | CID of the exact public event record revision represented by this snapshot. |
| def:eventInput | title | string | yes | no | minLength:1, maxLength:3000, maxGraphemes:300 | No description in lexicon yet. |
| def:eventInput | startsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:eventInput | imageUrl | string | no | no | format:uri | No description in lexicon yet. |
| def:ticketHoldItemRequest | ticketTypeId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| def:ticketHoldItemRequest | quantity | integer | yes | no | minimum:1, maximum:50 | No description in lexicon yet. |
| def:ticketHoldItem | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketHoldItem | title | string | yes | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:ticketHoldItem | quantity | integer | yes | no | minimum:1, maximum:50 | No description in lexicon yet. |
| def:ticketHoldItem | unitAmount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketHoldItem | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code matching money.atmosphere.price. |
| def:ticketHoldItem | ticketTypeRef | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:ticketHoldItem | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:ticketTypeSummary | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketTypeSummary | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketTypeSummary | title | string | yes | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:ticketTypeSummary | quantityTotal | integer | no | no | minimum:1, maximum:250000 | The type's own configured cap. |
| def:ticketTypeSummary | currency | string | yes | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code matching money.atmosphere.price. |
| def:ticketTypeSummary | unitAmount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:ticketTypeSummary | status | string<active | paused | archived> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:ticketTypeSummary | ticketTypeRef | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:ticketTypeSummary | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:eventSummary | id | string | yes | no | maxLength:300 | ATM's private identifier for this ticketed-event config. |
| def:eventSummary | uri | string | yes | no | format:at-uri | AT URI of the canonical public event record. |
| def:eventSummary | cid | string | no | no | format:cid | CID of the exact public event record revision, when known. |
| def:eventSummary | eventRef | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:eventSummary | title | string | no | no | maxLength:3000, maxGraphemes:300 | No description in lexicon yet. |
| def:eventSummary | startsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:eventSummary | manageUrl | string | no | no | format:uri | Stable ATM organizer-console locator for this canonical event. |
| def:eventSummary | scannerUrl | string | no | no | format:uri | Stable first-party ATM scanner locator for this canonical event. |
| def:organizerCollaboration | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:organizerCollaboration | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:organizerCollaboration | primaryOrganizerDid | string | yes | no | format:did | No description in lexicon yet. |
| def:organizerCollaboration | coOrganizerDid | string | yes | no | format:did | No description in lexicon yet. |
| def:organizerCollaboration | role | string<co-organizer> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:organizerCollaboration | status | string<pending | accepted | revoked> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:organizerCollaboration | revenueShareBps | integer | no | no | minimum:0, maximum:10000 | Recorded revenue-share INTENT in basis points, for MANUAL RECONCILIATION ONLY. |
| def:organizerCollaboration | invitedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:organizerCollaboration | acceptedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:organizerCollaboration | revokedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:ticketAvailability | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:ticketAvailability | eventId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:ticketAvailability | title | string | yes | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:ticketAvailability | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| def:ticketAvailability | currency | string | no | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code matching money.atmosphere.price. |
| def:ticketAvailability | unitAmount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:ticketAvailability | status | string<available | sold-out | not-on-sale | hidden | unavailable> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:ticketAvailability | visibility | string<hidden> | no | no | maxLength:16 | Present only for hidden ticket types revealed by the caller's access code, so an app can tell which entries the code unlocked. |
| def:ticketAvailability | availableQuantity | integer | no | no | minimum:0 | Effective availability (min across the type's capacity pools). |
| def:ticketAvailability | quantityTotal | integer | no | no | minimum:1, maximum:250000 | The type's OWN configured cap, for 'X of Y left' display. |
| def:ticketAvailability | heldQuantity | integer | no | no | minimum:0 | Quantity currently reserved by active holds. |
| def:ticketAvailability | soldQuantity | integer | no | no | minimum:0 | Quantity already issued/sold. |
| def:ticketAvailability | maxPerOrder | integer | yes | no | minimum:1, maximum:50 | No description in lexicon yet. |
| def:ticketAvailability | saleStartsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:ticketAvailability | saleEndsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:ticketPresentation | iconUrl | string | no | no | format:uri | Pass icon URL. |
| def:ticketPresentation | qr | ref:#ticketPresentationQr | yes | no | none | No description in lexicon yet. |
| def:ticketPresentation | app | ref:tickets.atmosphere.defs#brand | yes | no | none | No description in lexicon yet. |
| def:ticketPresentation | organizer | ref:tickets.atmosphere.defs#brand | yes | no | none | No description in lexicon yet. |
| def:ticketPresentation | event | ref:#ticketPresentationEvent | yes | no | none | No description in lexicon yet. |
| def:ticketPresentation | ticketType | ref:#ticketPresentationTicketType | yes | no | none | No description in lexicon yet. |
| def:brand | did | string | yes | no | format:did | No description in lexicon yet. |
| def:brand | handle | string | no | no | format:handle | No description in lexicon yet. |
| def:brand | name | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:brand | avatarUrl | string | no | no | format:uri | No description in lexicon yet. |
| def:issuedTicket | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | paymentId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | claimId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:issuedTicket | ownerDid | string | no | no | format:did | No description in lexicon yet. |
| def:issuedTicket | status | string<active | voided | refunded> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:issuedTicket | ticketNumber | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicket | eventRef | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:issuedTicket | ticketTypeRef | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:issuedTicket | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:issuedTicket | scanToken | string | no | no | maxLength:4000 | Private scan token returned only to authorized clients. |
| def:issuedTicket | scanUrl | string | no | no | format:uri | No description in lexicon yet. |
| def:issuedTicket | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:issuedTicket | updatedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:issuedTicketWithContext | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicketWithContext | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicketWithContext | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicketWithContext | paymentId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicketWithContext | claimId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicketWithContext | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:issuedTicketWithContext | ownerDid | string | no | no | format:did | No description in lexicon yet. |
| def:issuedTicketWithContext | status | string<active | voided | refunded> | yes | no | maxLength:32 | No description in lexicon yet. |
| def:issuedTicketWithContext | ticketNumber | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:issuedTicketWithContext | eventRef | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:issuedTicketWithContext | ticketTypeRef | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:issuedTicketWithContext | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | No description in lexicon yet. |
| def:issuedTicketWithContext | scanToken | string | no | no | maxLength:4000 | No description in lexicon yet. |
| def:issuedTicketWithContext | scanUrl | string | no | no | format:uri | No description in lexicon yet. |
| def:issuedTicketWithContext | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:issuedTicketWithContext | updatedAt | string | yes | no | format:datetime | No description in lexicon yet. |
| def:issuedTicketWithContext | presentation | ref:tickets.atmosphere.defs#ticketPresentation | no | no | none | No description in lexicon yet. |
| def:issuedTicketWithContext | event | ref:tickets.atmosphere.defs#eventSummary | no | no | none | No description in lexicon yet. |
| def:issuedTicketWithContext | ticketType | ref:tickets.atmosphere.defs#ticketTypeSummary | no | no | none | No description in lexicon yet. |
| def:ticketPresentationQr | enabled | boolean | yes | no | none | No description in lexicon yet. |
| def:ticketPresentationQr | label | string | yes | no | maxLength:100 | No description in lexicon yet. |
| def:ticketPresentationEvent | uri | string | yes | no | format:at-uri | AT URI of the canonical public event record. |
| def:ticketPresentationEvent | title | string | yes | no | maxLength:3000, maxGraphemes:300 | No description in lexicon yet. |
| def:ticketPresentationEvent | startsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:ticketPresentationEvent | imageUrl | string | no | no | format:uri | No description in lexicon yet. |
| def:ticketPresentationTicketType | title | string | yes | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
tickets.atmosphere.getTicketAvailability7 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| params | eventId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| params | eventUri | string | no | no | format:at-uri | No description in lexicon yet. |
| params | eventCode | string | no | no | minLength:3, maxLength:64 | Preferred buyer-entered event code. |
| params | accessCode | string | no | no | minLength:3, maxLength:64 | Legacy visibility-only input. |
| output | event | ref:tickets.atmosphere.defs#eventSummary | no | no | none | No description in lexicon yet. |
| output | ticketTypes | array<ref:tickets.atmosphere.defs#ticketAvailability> | yes | no | maxLength:250 | No description in lexicon yet. |
tickets.atmosphere.inviteOrganizerCollaboration8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | eventUri | string | no | no | format:at-uri | No description in lexicon yet. |
| input | organizerDid | string | yes | no | format:did | The inviting PRIMARY organizer (or an already-accepted co-organizer) authorizing this invite. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.inviteOrganizerCollaboration. |
| input | coOrganizerDid | string | yes | no | format:did | The DID being invited to co-organize the event. |
| input | revenueShareBps | integer | no | no | minimum:0, maximum:10000 | OPTIONAL recorded revenue-share INTENT in basis points (0..10000), for MANUAL RECONCILIATION ONLY between the primary organizer and the co-organizer. |
| output | collaboration | ref:tickets.atmosphere.defs#organizerCollaboration | yes | no | none | No description in lexicon yet. |
tickets.atmosphere.joinWaitlist15 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | eventUri | string | no | no | format:at-uri | No description in lexicon yet. |
| input | ticketTypeId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | buyerDid | string | no | no | format:did | No description in lexicon yet. |
| input | buyerAssertionJwt | string | no | no | maxLength:8192 | Required whenever buyerDid is supplied: a short-lived user service-auth JWT from buyerDid to ATM, scoped to tickets.atmosphere.joinWaitlist. |
| input | customerEmail | string | no | no | maxLength:320 | Private delivery hint for the offer email. |
| input | quantity | integer | no | no | minimum:1, maximum:50 | No description in lexicon yet. |
| output | waitlistId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | status | string<waiting | offered | claimed | expired | released> | yes | no | maxLength:16 | No description in lexicon yet. |
| output | position | integer | yes | no | minimum:0 | No description in lexicon yet. |
| output | quantity | integer | yes | no | minimum:1 | No description in lexicon yet. |
| output | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | reused | boolean | no | no | none | No description in lexicon yet. |
tickets.atmosphere.listBuyerTickets7 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| params | buyer | string | no | no | format:at-identifier | DID or handle of the ticket owner. |
| params | paymentId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | tickets | array<ref:tickets.atmosphere.defs#issuedTicketWithContext> | yes | no | maxLength:100 | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
tickets.atmosphere.listCollaborations10 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | organizerDid | string | no | no | format:did | When listing an event's collaborations, the requesting organizer (verified via event control). |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | No description in lexicon yet. |
| input | coOrganizerDid | string | no | no | format:did | When listing a co-organizer's OWN collaborations, their DID (verified via coOrganizerAssertionJwt). |
| input | coOrganizerAssertionJwt | string | no | no | maxLength:8192 | No description in lexicon yet. |
| input | limit | integer | no | no | minimum:1, maximum:250 | No description in lexicon yet. |
| input | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | collaborations | array<ref:tickets.atmosphere.defs#organizerCollaboration> | yes | no | maxLength:250 | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
tickets.atmosphere.listEventWaitlist30 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | organizerDid | string | yes | no | format:did | No description in lexicon yet. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | No description in lexicon yet. |
| input | ticketTypeId | string | no | no | minLength:1, maxLength:300 | Filter the queue to one ticket type. |
| input | includeTerminal | boolean | no | no | none | Include terminal (claimed/expired/released) rows in the queue page. |
| input | limit | integer | no | no | minimum:1, maximum:250 | No description in lexicon yet. |
| input | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | summaries | array<ref:#waitlistSummary> | yes | no | maxLength:1000 | No description in lexicon yet. |
| output | entries | array<ref:#waitlistEntry> | yes | no | maxLength:250 | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:waitlistSummary | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:waitlistSummary | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:waitlistSummary | ticketTypeTitle | string | yes | no | maxLength:200 | No description in lexicon yet. |
| def:waitlistSummary | activeCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:waitlistSummary | waitingCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:waitlistSummary | offeredCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:waitlistSummary | activeQuantity | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:waitlistEntry | waitlistId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:waitlistEntry | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:waitlistEntry | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:waitlistEntry | position | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:waitlistEntry | quantity | integer | yes | no | minimum:1 | No description in lexicon yet. |
| def:waitlistEntry | status | string<waiting | offered | claimed | expired | released> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:waitlistEntry | buyerDid | string | no | no | format:did | No description in lexicon yet. |
| def:waitlistEntry | customerEmailHint | string | no | no | maxLength:200 | No description in lexicon yet. |
| def:waitlistEntry | offerHoldId | string | no | no | maxLength:300 | No description in lexicon yet. |
| def:waitlistEntry | offeredAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:waitlistEntry | offerExpiresAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:waitlistEntry | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
tickets.atmosphere.listOrganizerTickets7 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| params | organizer | string | no | no | format:at-identifier | DID or handle of the ticket organizer. |
| params | eventId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:250 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | tickets | array<ref:tickets.atmosphere.defs#issuedTicketWithContext> | yes | no | maxLength:250 | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
tickets.atmosphere.listPublicConfig30 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| params | organizer | string | yes | no | format:at-identifier | DID or handle of the organizer. |
| params | eventUri | string | no | no | format:at-uri | No description in lexicon yet. |
| params | collections | array<string<tickets.atmosphere.ticketType | tickets.atmosphere.ticketedEvent>> | no | no | maxLength:3 | No description in lexicon yet. |
| params | includeArchived | boolean | no | no | none | No description in lexicon yet. |
| params | limit | integer | no | no | minimum:1, maximum:100 | No description in lexicon yet. |
| params | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | records | array<ref:#publicConfigRecord> | yes | no | none | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:publicConfigRecord | uri | string | yes | no | format:at-uri | AT URI of the indexed ticket config record. |
| def:publicConfigRecord | cid | string | yes | no | format:cid | CID of the exact indexed ticket config record revision. |
| def:publicConfigRecord | organizer | string | yes | no | format:did | DID of the organizer repository containing the record. |
| def:publicConfigRecord | collection | string<tickets.atmosphere.ticketType | tickets.atmosphere.ticketedEvent> | yes | no | format:nsid | NSID of the indexed ticket config record collection. |
| def:publicConfigRecord | rkey | string | yes | no | format:record-key | Repository record key of the indexed ticket config record. |
| def:publicConfigRecord | event | ref:com.atproto.repo.strongRef | yes | no | none | CID-pinned strongRef to the public event this ticket config describes. |
| def:publicConfigRecord | title | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| def:publicConfigRecord | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| def:publicConfigRecord | currency | string | no | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code matching money.atmosphere.price. |
| def:publicConfigRecord | unitAmount | integer | no | no | minimum:0 | No description in lexicon yet. |
| def:publicConfigRecord | quantityTotal | integer | no | no | minimum:1, maximum:250000 | Display hint from the ticketType record. |
| def:publicConfigRecord | maxPerOrder | integer | no | no | minimum:1, maximum:50 | No description in lexicon yet. |
| def:publicConfigRecord | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | CID-pinned strongRef to the ticket type's current money.atmosphere.price, when published. |
| def:publicConfigRecord | saleStartsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:publicConfigRecord | saleEndsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:publicConfigRecord | ticketTypes | array<ref:com.atproto.repo.strongRef> | no | no | maxLength:250 | Display-ordered CID-pinned strongRefs advertised by a ticketed-event record. |
| def:publicConfigRecord | startsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:publicConfigRecord | endsAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:publicConfigRecord | archived | boolean | yes | no | none | No description in lexicon yet. |
| def:publicConfigRecord | createdAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:publicConfigRecord | updatedAt | string | no | no | format:datetime | No description in lexicon yet. |
| def:publicConfigRecord | indexedAt | string | yes | no | format:datetime | When the AppView indexed this public ticket config record. |
tickets.atmosphere.listTicketFormResponses16 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | organizerDid | string | yes | no | format:did | No description in lexicon yet. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | No description in lexicon yet. |
| input | ticketTypeId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | ticketId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | limit | integer | no | no | minimum:1, maximum:250 | No description in lexicon yet. |
| input | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| output | responses | array<ref:#formResponse> | yes | no | maxLength:250 | No description in lexicon yet. |
| output | cursor | string | no | no | maxLength:1024 | No description in lexicon yet. |
| def:formResponse | ticketId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:formResponse | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:formResponse | fieldKey | string | yes | no | maxLength:64 | No description in lexicon yet. |
| def:formResponse | value | string | yes | no | maxLength:2000 | No description in lexicon yet. |
| def:formResponse | showAtCheckIn | boolean | yes | no | none | No description in lexicon yet. |
| def:formResponse | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
tickets.atmosphere.releaseFreeTicket10 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | eventUri | string | no | no | format:at-uri | No description in lexicon yet. |
| input | buyerDid | string | yes | no | format:did | No description in lexicon yet. |
| input | buyerAssertionJwt | string | yes | no | maxLength:8192 | Required short-lived user service-auth JWT from buyerDid to ATM, scoped to tickets.atmosphere.releaseFreeTicket. |
| input | idempotencyKey | string | yes | no | minLength:1, maxLength:200 | Caller-stable identity for this release gesture. |
| input | ticketIds | array<string> | no | no | maxLength:50 | Optional narrowing to specific tickets — OMIT the field to release EVERY active free-claim ticket the buyer holds for this event, or pass an EMPTY array (or one with no valid ids) to release NOTHING and get releasedCount 0. |
| output | environment | string<test | live> | yes | no | maxLength:16 | No description in lexicon yet. |
| output | releasedCount | integer | yes | no | minimum:0 | Authoritative number of tickets released — may exceed releasedTicketIds.length, which is capped at 1000, so treat a shorter list as partial and re-query rather than as the complete set. |
| output | releasedTicketIds | array<string> | yes | no | maxLength:1000 | Ids of the released tickets, truncated to the first 1000 — compare against releasedCount to detect truncation. |
tickets.atmosphere.releaseTicketHold6 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | holdId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | reason | string | no | no | maxLength:200 | No description in lexicon yet. |
| output | hold | ref:#hold | yes | no | none | No description in lexicon yet. |
| def:hold | id | string | yes | no | maxLength:300 | No description in lexicon yet. |
| def:hold | status | string<released | expired | failed | completed> | yes | no | maxLength:32 | No description in lexicon yet. |
tickets.atmosphere.revokeCollaboration5 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | collaborationId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | organizerDid | string | yes | no | format:did | The revoking PRIMARY organizer (or accepted co-organizer) authorizing this revocation via event control. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.revokeCollaboration. |
| output | collaboration | ref:tickets.atmosphere.defs#organizerCollaboration | yes | no | none | No description in lexicon yet. |
tickets.atmosphere.setEventCapacity11 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | no | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | eventUri | string | no | no | format:at-uri | No description in lexicon yet. |
| input | organizerDid | string | no | no | format:did | The current primary organizer authorizing this mutation. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional only for an app updating its own event. |
| input | capacity | integer | no | no | minimum:1, maximum:250000 | Total tickets across ALL ticket types of the event. |
| input | unlimited | boolean | no | no | none | true clears the event capacity (unlimited — the default posture for new events). |
| output | eventId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | capacity | integer | no | no | minimum:1, maximum:250000 | The event capacity now in effect. |
| output | soldQuantity | integer | yes | no | minimum:0 | No description in lexicon yet. |
| output | heldQuantity | integer | yes | no | minimum:0 | No description in lexicon yet. |
tickets.atmosphere.setTicketTypeForm16 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | ticketTypeId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | organizerDid | string | yes | no | format:did | No description in lexicon yet. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.setTicketTypeForm. |
| input | form | ref:#form | no | yes | none | No description in lexicon yet. |
| output | ticketTypeId | string | yes | no | maxLength:300 | No description in lexicon yet. |
| output | fieldCount | integer | yes | no | minimum:0 | No description in lexicon yet. |
| def:form | version | integer | yes | no | minimum:1 | Form schema version. |
| def:form | fields | array<ref:#formField> | yes | no | maxLength:30 | No description in lexicon yet. |
| def:formField | key | string | yes | no | minLength:1, maxLength:64 | No description in lexicon yet. |
| def:formField | label | string | yes | no | minLength:1, maxLength:200 | No description in lexicon yet. |
| def:formField | description | string | no | no | maxLength:1000 | Optional buyer-facing help text shown below the question. |
| def:formField | type | string<text | textarea | email | select | checkbox | boolean | number> | yes | no | maxLength:16 | No description in lexicon yet. |
| def:formField | required | boolean | no | no | none | No description in lexicon yet. |
| def:formField | showAtCheckIn | boolean | no | no | none | Show this answer at check-in. |
| def:formField | options | array<string> | no | no | maxLength:50 | Choice values for select fields; each string is both the stored value and the display label. |
tickets.atmosphere.ticketedEvent7 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | event | ref:com.atproto.repo.strongRef | yes | no | none | CID-pinned strongRef to the canonical public community.lexicon.calendar.event record. |
| record | ticketTypes | array<ref:com.atproto.repo.strongRef> | no | no | maxLength:250 | Display-ordered CID-pinned strongRefs to the ticket types this record publicly advertises. |
| record | title | string | no | no | maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| record | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| record | archived | boolean | no | no | none | True when this ticketed-event anchor is archived. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| record | updatedAt | string | no | no | format:datetime | No description in lexicon yet. |
tickets.atmosphere.ticketType14 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| record | event | ref:com.atproto.repo.strongRef | yes | no | none | CID-pinned strongRef to the canonical public community.lexicon.calendar.event record. |
| record | title | string | yes | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| record | description | string | no | no | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| record | currency | string | no | no | minLength:3, maxLength:3 | Deprecated display copy retained for readers of early records; canonical pricing belongs on the money.atmosphere.price referenced by defaultPrice. |
| record | unitAmount | integer | no | no | minimum:0 | Deprecated display copy retained for readers of early records; canonical pricing belongs on the money.atmosphere.price referenced by defaultPrice. |
| record | quantityTotal | integer | no | no | minimum:1, maximum:250000 | Display hint: the type's configured cap. |
| record | maxPerOrder | integer | no | no | minimum:1, maximum:50 | Organizer-configured per-order limit for this ticket type. |
| record | defaultPrice | ref:com.atproto.repo.strongRef | no | no | none | Optional CID-pinned strongRef to the current money.atmosphere.price for this ticket type in the organizer repo. |
| record | saleStartsAt | string | no | no | format:datetime | No description in lexicon yet. |
| record | saleEndsAt | string | no | no | format:datetime | No description in lexicon yet. |
| record | archived | boolean | no | no | none | True when this ticket type is archived. |
| record | archivedAt | string | no | no | format:datetime | No description in lexicon yet. |
| record | createdAt | string | yes | no | format:datetime | No description in lexicon yet. |
| record | updatedAt | string | no | no | format:datetime | No description in lexicon yet. |
tickets.atmosphere.updateTicketEvent11 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | eventId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | organizerDid | string | no | no | format:did | The primary organizer or accepted co-organizer authorizing this mutation. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional only for an app updating its own event. |
| input | title | string | no | no | minLength:1, maxLength:3000, maxGraphemes:300 | No description in lexicon yet. |
| input | startsAt | string | no | yes | format:datetime | No description in lexicon yet. |
| input | eventCid | string | no | yes | format:cid | No description in lexicon yet. |
| input | imageUrl | string | no | yes | format:uri | No description in lexicon yet. |
| input | status | string<active | paused | archived> | no | no | maxLength:32 | ATM ticket-sales lifecycle state. |
| input | metadata | unknown | no | no | none | No description in lexicon yet. |
| output | event | ref:tickets.atmosphere.defs#eventSummary | yes | no | none | No description in lexicon yet. |
tickets.atmosphere.updateTicketType19 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | ticketTypeId | string | yes | no | minLength:1, maxLength:300 | No description in lexicon yet. |
| input | organizerDid | string | no | no | format:did | The primary organizer or accepted co-organizer authorizing this mutation. |
| input | organizerAssertionJwt | string | no | no | maxLength:8192 | Optional only for an app updating its own event. |
| input | title | string | no | no | minLength:1, maxLength:1000, maxGraphemes:100 | No description in lexicon yet. |
| input | description | string | no | yes | maxLength:10000, maxGraphemes:1000 | No description in lexicon yet. |
| input | currency | string | no | no | minLength:3, maxLength:3 | Lowercase ISO 4217 alphabetic code matching money.atmosphere.price. |
| input | unitAmount | integer | no | no | minimum:0, maximum:2000000 | Amount in the smallest unit of currency. |
| input | maxPerOrder | integer | no | no | minimum:1, maximum:50 | No description in lexicon yet. |
| input | saleStartsAt | string | no | yes | format:datetime | No description in lexicon yet. |
| input | saleEndsAt | string | no | yes | format:datetime | No description in lexicon yet. |
| input | ticketTypeRef | ref:com.atproto.repo.strongRef | no | yes | none | No description in lexicon yet. |
| input | defaultPrice | ref:com.atproto.repo.strongRef | no | yes | none | No description in lexicon yet. |
| input | metadata | unknown | no | no | none | No description in lexicon yet. |
| input | visibility | string<public | hidden> | no | no | maxLength:16 | Private buyer-facing visibility (default public). |
| input | quantityTotal | integer | no | no | minimum:1, maximum:250000 | Set the per-type cap. |
| input | unlimited | boolean | no | no | none | true clears the per-type cap (unlimited). |
| input | status | string<active | paused | archived> | no | no | maxLength:32 | No description in lexicon yet. |
| output | ticketType | ref:tickets.atmosphere.defs#ticketTypeSummary | yes | no | none | No description in lexicon yet. |
tickets.atmosphere.verifyTicket8 fields
| Location | Field | Type | Required | Nullable | Limits | Description |
|---|---|---|---|---|---|---|
| input | environment | string<test | live> | no | no | maxLength:16 | No description in lexicon yet. |
| input | ticketToken | string | yes | no | minLength:1, maxLength:4000 | No description in lexicon yet. |
| output | valid | boolean | yes | no | none | No description in lexicon yet. |
| output | reason | string | no | no | maxLength:100 | No description in lexicon yet. |
| output | ticket | ref:tickets.atmosphere.defs#issuedTicket | no | no | none | No description in lexicon yet. |
| output | presentation | ref:tickets.atmosphere.defs#ticketPresentation | no | no | none | No description in lexicon yet. |
| output | event | ref:tickets.atmosphere.defs#eventSummary | no | no | none | No description in lexicon yet. |
| output | ticketType | ref:tickets.atmosphere.defs#ticketTypeSummary | no | no | none | No description in lexicon yet. |
Contract checks
- Every public ATM-owned NSID appears in generated docs output.
- External attested.network schemas stay strict and are not hand-extended.
- Tickets XRPC methods remain visible from ATM docs because ticket purchases flow through the ATM ledger.
- Generated docs can be refreshed before posting lexicons for public review.
npm run docs:checkPublic review artifacts
Pair this generated index with the lexicon review bundle when asking the AT Protocol community to review contract shape. The human review page covers design goals; this page keeps the full method and record index honest.
Human review
Design rationale and open questions.
Generated index
Every current contract and lifecycle label.
Tickets reference
Ticket-specific integration flows on atmosphere.tickets.