Docs

Generated reference

A contract index generated from the local ATM, attested.network, and Tickets lexicons.

Closed beta@atmosphere-money/app-nodeSDK beta: 0.0.0-beta.3ATM API beta: 2026-0671 published 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.

shell
cd app
npm run docs:generate-reference
npm run docs:check

ATM money namespace

NSIDKindRouteAuthStatusSummaryLinks
money.atmosphere.actor.getPayoutStatusquery/xrpc/money.atmosphere.actor.getPayoutStatusService-authbeta draftReturn whether an actor can receive payments through ATM.
money.atmosphere.actor.getProfilequery/xrpc/money.atmosphere.actor.getProfilePublic AppView readbeta draftReturn the indexed money.atmosphere.actor.profile record for an actor DID or handle, or null if none has been indexed.
money.atmosphere.actor.profilerecordPDSPDS recordbeta draftMinimal payment-facing profile for an Atmosphere account using ATM.
money.atmosphere.agreement.acceptancerecordNot publicly servedNo public write pathprepublication candidate; unserved and unpublishedAcceptance by the authenticated counterparty of one exact offer version. Together the records describe accepted allocation, not provider charges, cash delivery or a universal refund policy. Unknown authority-bearing fields and variants grant no authority under an unsupported calculation profile. A changed agreement requires fresh applicable consent; it never reprices an earlier occurrence.
money.atmosphere.agreement.aggregatePolicyrecordNot publicly servedNo public write pathprepublication candidate; unserved and unpublishedDRAFT unpublished candidate. A creator-authored standing ceiling on applicable percentage root rates for one offering and occurrence in the financial namespace, not a total expense budget. The sum of the exact accepted rates of every applicable root must stay at or below aggregateMaxFeeShareBps; a reviewed compiler fails closed rather than clamp or drop an obligation. Routing costs, processor fees, shipping, tax and future fixed expenses are not percentages in this sum and require independent accepted funding, burden and residual checks. Child shares consume their immediate parent's separate aggregate delegation ceiling, not another creator root rate. 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 financial namespace; a foreign, cross-namespace, 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.beneficiaryRefusalrecordNot publicly servedNo public write pathprepublication candidate; unserved and unpublishedDRAFT 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.brokerTermsrecordNot publicly servedNo public write pathprepublication candidate; unserved and unpublishedBroker-authored, immutable, versioned disclosure of the private operational policies under which the broker settles: commission refund handling, payee cost recovery, payout holds and the platform leg's release rule. Each policy entry is a generated projection of the exact rule definition the broker runs, never free text; the record states policy and carries no amounts, identifiers, provider evidence or per-occurrence schedules. Settlement records reference the exact version frozen for an occurrence at admission. This record grants no allocation authority and is not a universal ARA obligation; another broker may settle without one.
money.atmosphere.agreement.defsdefsNot publicly servedNo public write pathprepublication candidate; unserved and unpublishedNo description in lexicon yet.
money.atmosphere.agreement.offerrecordNot publicly servedNo public write pathprepublication candidate; unserved and unpublishedPosted allocation terms authored by the offeror; the acceptance takes them exactly as posted and may only narrow scope. A different rate is a different offer version, never a selection. The offer alone grants no allocation authority. Authenticated authorship and ordinary record CIDs bind exact versions. Provider costs, payout timing and broker service policies are separate from this agreement. Authority-changing extensions require a supported tagged variant and calculation profile; unknown authority-bearing fields or variants grant no authority. This record does not determine the legal obligations of a broker or guarantee cash delivery.
money.atmosphere.agreement.revocationrecordNot publicly servedNo public write pathprepublication candidate; unserved and unpublishedDRAFT 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.rootEnablementrecordNot publicly servedNo public write pathprepublication candidate; unserved and unpublishedDRAFT unpublished candidate. A creator-authored enabled or terminally revoked enrollment under one exact bilateral acceptance, with explicit app-catalog standing scope or selected offerings. The author must be the recipient-proceeds funder and owner of every selected offering; the bound acceptance may be authored by that creator or by the beneficiary, depending on which party authored the offer. One lifecycle exists per creator, agreement namespace and exact acceptance, independent of scope contents, record URI or catalog CIDs. A mismatched funder, offer/acceptance lineage, scope app or counterparty is void. A creator-authenticated enabled successor may explicitly replace scope within the offer and accepted payment types. A revoked successor must retain the prior scope, omit paymentTypes and expiresAt, and is admission-clamped and permanently terminal for that exact root lineage. Deletion, a new record URI, catalog edits or switching scope variants never reopen it; re-enrollment requires a new bilateral acceptance and fresh creator enrollment authority. A beneficiary's new acceptance under the same old standing offer cannot bypass the creator's withdrawal. Exactly one current tip is allowed; branches and ambiguous overlapping acceptances authorize no allocation. No automatic product-specific precedence or fee override is implied.
money.atmosphere.agreement.settlementrecordNot publicly servedNo public write pathprepublication candidate; unserved and unpublishedBroker-authored allocation evidence for an exact occurrence and accepted agreements, with an append-only compensation history. Public retainedAllocation is allocation before private payee charges, not observed Transfer proceeds or bank payout. Provider costs are not encoded here; the settling broker's operational policies are disclosed by the referenced brokerTerms record, never inferred from amounts. Existing payment proof and purchase-context links authenticate association, not later-cycle settlement or cash delivery.
money.atmosphere.analytics.getPaymentVolumeTrendsquery/xrpc/money.atmosphere.analytics.getPaymentVolumeTrendsService-authbeta draftAggregate payment-volume trends for the calling app, scoped to payments it originated.
money.atmosphere.analytics.getRefundAnalysisquery/xrpc/money.atmosphere.analytics.getRefundAnalysisService-authbeta draftRefund analysis for the calling app, scoped to its own originated payments.
money.atmosphere.analytics.getSubscriptionMetricsquery/xrpc/money.atmosphere.analytics.getSubscriptionMetricsService-authbeta draftSubscription MRR / growth / churn for the calling app, per currency, scoped to its own originated subscriptions.
money.atmosphere.app.assertRecipientprocedure/xrpc/money.atmosphere.app.assertRecipientService-authbeta draftService-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.auditFeeDistributionsquery/xrpc/money.atmosphere.app.auditFeeDistributionsService-authbeta draftAudit 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.clearRecipientFeeShareprocedure/xrpc/money.atmosphere.app.clearRecipientFeeShareService-authbeta draftRemove a per-recipient fee override; fee plans prepared afterward return to the app's configured fee.
money.atmosphere.app.defsdefs/xrpc/money.atmosphere.app.defsApp service-authbeta draftNo description in lexicon yet.
money.atmosphere.app.getConfigquery/xrpc/money.atmosphere.app.getConfigService-authbeta draftRead the calling app's ATM app configuration for one environment.
money.atmosphere.app.getRecipientApprovalquery/xrpc/money.atmosphere.app.getRecipientApprovalService-authbeta draftRead the calling app's current creator approval and coarse payment setup state for one exact environment.
money.atmosphere.app.listRecipientFeeSharesquery/xrpc/money.atmosphere.app.listRecipientFeeSharesService-authbeta draftList this app's per-recipient fee overrides.
money.atmosphere.app.requestRecipientApprovalprocedure/xrpc/money.atmosphere.app.requestRecipientApprovalService-authbeta draftRequest creator approval for an app to accept ATM payments for that recipient.
money.atmosphere.app.setRecipientFeeShareprocedure/xrpc/money.atmosphere.app.setRecipientFeeShareService-authbeta draftSet a LOWER per-recipient application-fee rate that ATM charges for this app (e.g.
money.atmosphere.app.updateConfigprocedure/xrpc/money.atmosphere.app.updateConfigService-authbeta draftUpdate safe app-level ATM configuration for one environment.
money.atmosphere.app.upsertFeeTierprocedure/xrpc/money.atmosphere.app.upsertFeeTierService-authbeta draftAtomically create or replace one automatic app-fee tier by subscriptionGroupKey while preserving every unrelated tier.
money.atmosphere.authCatalogpermission-setNot an XRPC routeUser-granted OAuth permission setbeta draftPermission set for managing ATM-owned catalog records: products, prices, discounts, and discount codes.
money.atmosphere.authProfilepermission-setNot an XRPC routeUser-granted OAuth permission setbeta draftPermission set for creating and updating the ATM-owned payment profile record.
money.atmosphere.billing.requestKofiMigrationBatchprocedure/xrpc/money.atmosphere.billing.requestKofiMigrationBatchService-authbeta draftCreate a private ATM billing migration review batch from a Ko-fi membership export.
money.atmosphere.billing.requestMigrationBatchprocedure/xrpc/money.atmosphere.billing.requestMigrationBatchService-authbeta draftCreate 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.getEventquery/xrpc/money.atmosphere.calendar.getEventPublic AppView readbeta draftReturn one indexed community.lexicon.calendar.event record by exact AT-URI, or null when it is not currently indexed.
money.atmosphere.calendar.listRsvpsquery/xrpc/money.atmosphere.calendar.listRsvpsPublic AppView readbeta draftList the latest public community.lexicon.calendar.rsvp state per attendee for an exact calendar event.
money.atmosphere.calendar.listUpcomingEventsquery/xrpc/money.atmosphere.calendar.listUpcomingEventsPublic AppView readbeta draftList an organizer's indexed upcoming community calendar events in start-time order, excluding cancelled events.
money.atmosphere.catalog.configureInventoryprocedure/xrpc/money.atmosphere.catalog.configureInventoryApp service-authbeta draftConfigure ATM's shared inventory authority for an exact current creator-owned root product and optional exact variant.
money.atmosphere.catalog.createProductprocedure/xrpc/money.atmosphere.catalog.createProductApp service-authbeta draftCreate an app-owned canonical ATM product in the calling app DID repo.
money.atmosphere.catalog.defsdefs/xrpc/money.atmosphere.catalog.defsApp service-authbeta draftNo description in lexicon yet.
money.atmosphere.catalog.getInventoryquery/xrpc/money.atmosphere.catalog.getInventoryPublic or app-scoped readbeta draftRead ATM's authoritative inventory projection for an exact active linked creator-owned root physical or digital product and optional exact variant.
money.atmosphere.catalog.getProductquery/xrpc/money.atmosphere.catalog.getProductPublic or app-scoped readbeta draftReturn one indexed ATM catalog product by AT-URI, or null if the AppView has not indexed it.
money.atmosphere.catalog.listDiscountCodesquery/xrpc/money.atmosphere.catalog.listDiscountCodesPublic or app-scoped readbeta draftList indexed public money.atmosphere.discountCode offers authored by a set of creators (read-only catalog projection).
money.atmosphere.catalog.listPricesquery/xrpc/money.atmosphere.catalog.listPricesPublic or app-scoped readbeta draftList indexed ATM Prices authored in an offer's repo whose offerUri exactly names that Product or ticket type.
money.atmosphere.catalog.listProductsquery/xrpc/money.atmosphere.catalog.listProductsPublic or app-scoped readbeta draftList indexed ATM catalog products for a creator, with optional default price and sales-count projections.
money.atmosphere.catalog.replacePriceprocedure/xrpc/money.atmosphere.catalog.replacePriceApp service-authbeta draftMint a new immutable money.atmosphere.price and atomically repoint an app-owned Product's defaultPrice in the same repository commit.
money.atmosphere.catalog.updateProductprocedure/xrpc/money.atmosphere.catalog.updateProductApp service-authbeta draftUpdate an app-owned canonical ATM product in the calling app DID repo.
money.atmosphere.discountrecordPDSPDS recordbeta draftPublic ATM discount terms that can be mirrored to processor coupon objects at checkout.
money.atmosphere.discountCoderecordPDSPDS recordbeta draftPublic customer-facing redemption code for a money.atmosphere.discount.
money.atmosphere.event.defsdefs/xrpc/money.atmosphere.event.defsApp service-authbeta draftNo description in lexicon yet.
money.atmosphere.event.listEventsquery/xrpc/money.atmosphere.event.listEventsService-authbeta draftList the calling app's successfully delivered test receiver events for diagnostics.
money.atmosphere.event.receiveEventprocedure/xrpc/money.atmosphere.event.receiveEventService-authbeta draftOptional app-implemented XRPC receiver for ATM outbound events.
money.atmosphere.membership.assertMemberprocedureNot publicly servedNo public routedeferred; hard-closed and unpublishedService-auth capability NSID used by a member to assert their own presence for a cross-app membership access check. This method is not exposed as a browser API; ATM verifies lxm in a short-lived, single-use service-auth JWT (iss = memberDid) supplied to money.atmosphere.membership.getAccess.
money.atmosphere.membership.createProgramprocedure/xrpc/money.atmosphere.membership.createProgramApp service-authbeta draftCreate a portable money.atmosphere.membership.program record in the creator's repo.
money.atmosphere.membership.createTierprocedure/xrpc/money.atmosphere.membership.createTierApp service-authbeta draftCreate a portable money.atmosphere.membership.tier record under an existing program in the creator's repo.
money.atmosphere.membership.getAccessprocedureNot publicly servedNo public routedeferred; hard-closed and unpublishedReserved cross-app membership access check. The current route is hard-closed: ATM_MEMBERSHIP_ACCESS_QUERY_ENABLED alone cannot enable it, because a standard member getServiceAuth token binds aud+lxm but not creatorDid, program, tier, or environment. It must remain unavailable until a member-controlled artifact cryptographically binds that exact request and the handler verifies the binding. Once implemented, authority is additionally creator-consent scoped, ATM answers from the union of attested subscriptions and registered grants, and the personalized response remains Cache-Control private, no-store.
money.atmosphere.membership.listGrantsquery/xrpc/money.atmosphere.membership.listGrantsService-authbeta draftList 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.programrecordPDSPDS recordbeta draftPublic ATM creator membership program.
money.atmosphere.membership.registerGrantprocedure/xrpc/money.atmosphere.membership.registerGrantService-authbeta draftRegister 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.revokeGrantprocedure/xrpc/money.atmosphere.membership.revokeGrantService-authbeta draftRevoke a membership grant previously registered with money.atmosphere.membership.registerGrant.
money.atmosphere.membership.tierrecordPDSPDS recordbeta draftPublic ATM membership tier for a creator membership program.
money.atmosphere.membership.updateProgramprocedure/xrpc/money.atmosphere.membership.updateProgramApp service-authbeta draftUpdate a money.atmosphere.membership.program record ATM authored in the creator's repo (the record CID rotates).
money.atmosphere.membership.updateTierprocedure/xrpc/money.atmosphere.membership.updateTierApp service-authbeta draftUpdate a money.atmosphere.membership.tier record ATM authored in the creator's repo (the record CID rotates).
money.atmosphere.order.defsdefs/xrpc/money.atmosphere.order.defsApp service-authbeta draftNo description in lexicon yet.
money.atmosphere.order.getOrderquery/xrpc/money.atmosphere.order.getOrderService-authbeta draftRead one canonical routed commerce order.
money.atmosphere.order.listOrdersquery/xrpc/money.atmosphere.order.listOrdersService-authbeta draftList the calling app's canonical routed commerce orders, newest movement first.
money.atmosphere.order.updateFulfillmentprocedure/xrpc/money.atmosphere.order.updateFulfillmentService-authbeta draftApply one app-authored fulfillment transition to a routed commerce order.
money.atmosphere.payment.assertPayerprocedure/xrpc/money.atmosphere.payment.assertPayerService-authbeta draftService-auth capability NSID used by an app to assert that a signed-in payer DID was present for an ATM checkout.
money.atmosphere.payment.authPublishReceiptpermission-setNot an XRPC routeUser-granted OAuth permission setexperimental; served; unpublished; no production behaviorAllow this app to create public payment receipt records in your account for payments you complete.
money.atmosphere.payment.cancelPledgeprocedure/xrpc/money.atmosphere.payment.cancelPledgeService-authbeta draftCancel a pledge before it converts.
money.atmosphere.payment.cancelSubscriptionprocedure/xrpc/money.atmosphere.payment.cancelSubscriptionService-authbeta draftCancel a subscription on behalf of the authenticated payer.
money.atmosphere.payment.convertPledgesprocedure/xrpc/money.atmosphere.payment.convertPledgesService-authbeta draftConvert this app's eligible active pledges for a recipient into live subscriptions now (e.g.
money.atmosphere.payment.createManagementSessionprocedure/xrpc/money.atmosphere.payment.createManagementSessionService-authbeta draftCreate a short-lived, single-use subscription management URL for a payer without an ATM sign-in.
money.atmosphere.payment.createPledgeprocedure/xrpc/money.atmosphere.payment.createPledgeService-authbeta draftCreate 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.createSubscriptionChangeSessionprocedure/xrpc/money.atmosphere.payment.createSubscriptionChangeSessionApp service-authbeta draftCreate a short-lived ATM hosted URL for a previously previewed membership tier change.
money.atmosphere.payment.declineRecordprocedure/xrpc/money.atmosphere.payment.declineRecordService-authbeta draftSignal that the originating app cannot write a delegated creator proof.
money.atmosphere.payment.defsdefs/xrpc/money.atmosphere.payment.defsApp service-authbeta draftNo description in lexicon yet.
money.atmosphere.payment.diagnoseSubscriptionFailurequery/xrpc/money.atmosphere.payment.diagnoseSubscriptionFailureService-authbeta draftDiagnose why a subscription renewal failed, for the originating app.
money.atmosphere.payment.getSubscriptionChangequery/xrpc/money.atmosphere.payment.getSubscriptionChangeService-authbeta draftReturn one known membership tier-change status to the registered app that requested that change.
money.atmosphere.payment.lifecyclerecordPDSPDS recordexperimental; served; unpublished; no production behaviorEXPERIMENTAL DRAFT — unpublished immutable lifecycle revision for one exact proof.
money.atmosphere.payment.listPayerProofsqueryRetired; frozen schema onlyNo public routeretired; frozen schema onlyFrozen historical query schema retained for resolver and forensic compatibility; ATM no longer serves this method.
money.atmosphere.payment.listPendingRecordsquery/xrpc/money.atmosphere.payment.listPendingRecordsService-authbeta draftList pending delegated creator proofs the originating app may upgrade.
money.atmosphere.payment.listPledgesquery/xrpc/money.atmosphere.payment.listPledgesService-authbeta draftList pledges originated by the authenticated app.
money.atmosphere.payment.listSubscriptionsquery/xrpc/money.atmosphere.payment.listSubscriptionsService-authbeta draftList active subscriptions for the authenticated payer.
money.atmosphere.payment.previewSubscriptionChangeprocedure/xrpc/money.atmosphere.payment.previewSubscriptionChangeApp service-authbeta draftCreate a short-lived ATM-authored membership tier-change quote without changing billing or access.
money.atmosphere.payment.proofrecordPDSPDS recordexperimental; served; unpublished; no production behaviorEXPERIMENTAL DRAFT — not published.
money.atmosphere.payment.receiptrecordPDSPDS recordexperimental; served; unpublished; no production behaviorAn immutable settlement-evidence record for one settled payment.
money.atmosphere.payment.receiptRetractionrecordPDSPDS recordbeta draftEXPERIMENTAL DRAFT — immutable signed retraction of one exact receipt assertion.
money.atmosphere.payment.recurringEndrecordPDSPDS recordbeta draftEXPERIMENTAL DRAFT — unpublished append-only end evidence for one settled recurring enrollment.
money.atmosphere.payment.recurringReceiptrecordPDSPDS recordexperimental; served; unpublished; no production behaviorAn immutable SETTLEMENT-EVIDENCE record for the initial settled payment that begins a payer-confirmed recurring relationship, plus the cadence snapshot accepted at enrollment.
money.atmosphere.payment.refundPaymentprocedure/xrpc/money.atmosphere.payment.refundPaymentService-authbeta draftRefund a payment the calling app originated.
money.atmosphere.payment.registerCreatorProofprocedure/xrpc/money.atmosphere.payment.registerCreatorProofService-authbeta draftRegister a creator proof URI written by the originating app on the creator's PDS via OAuth.
money.atmosphere.payment.verifyReceiptqueryNot implementedNo enabled auth pathexperimental; served; unpublished; no production behaviorEXPERIMENTAL DRAFT — unpublished exact-evidence verification of one receipt generation.
money.atmosphere.payment.verifyRecordquery/xrpc/money.atmosphere.payment.verifyRecordPublic AppView readbeta draftVerify one exact public attested payment strongRef against ATM's current active broker proof.
money.atmosphere.pricerecordPDSPDS recordbeta draftPublic ATM price record describing amount, currency, and billing cadence for an offer (Product or ticket type).
money.atmosphere.productrecordPDSPDS recordbeta draftPublic ATM catalog product describing what is sold; prices live in money.atmosphere.price.
money.atmosphere.segments.listMembersquery/xrpc/money.atmosphere.segments.listMembersService-authbeta draftList members of a private customer cohort the calling app's payments computed.
money.atmosphere.segments.requestMessageprocedure/xrpc/money.atmosphere.segments.requestMessageService-authbeta draftRequest a marketing message to a computed customer cohort.
money.atmosphere.sellerTermsrecordPDSPDS recordbeta draftSeller-authored, immutable, versioned buyer-facing commercial terms: refund, return, delivery, cancellation, subscription and support policy.
money.atmosphere.temp.membership.defsdefs/xrpc/money.atmosphere.temp.membership.defsApp service-authbeta draftNo description in lexicon yet.
money.atmosphere.temp.membership.registerSpaceprocedure/xrpc/money.atmosphere.temp.membership.registerSpaceCreator service-authexperimental invite-only betaRegister 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.revokeSpaceprocedure/xrpc/money.atmosphere.temp.membership.revokeSpaceCreator service-authexperimental invite-only betaEmergency-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.
money.atmosphere.test.agreement.acceptancerecordPDSPDS recordbeta draftAcceptance by the authenticated counterparty of one exact offer version. Together the records describe accepted allocation, not provider charges, cash delivery or a universal refund policy. Unknown authority-bearing fields and variants grant no authority under an unsupported calculation profile. A changed agreement requires fresh applicable consent; it never reprices an earlier occurrence.
money.atmosphere.test.agreement.aggregatePolicyrecordPDSPDS recordbeta draftDRAFT unpublished candidate. A creator-authored standing ceiling on applicable percentage root rates for one offering and occurrence in the financial namespace, not a total expense budget. The sum of the exact accepted rates of every applicable root must stay at or below aggregateMaxFeeShareBps; a reviewed compiler fails closed rather than clamp or drop an obligation. Routing costs, processor fees, shipping, tax and future fixed expenses are not percentages in this sum and require independent accepted funding, burden and residual checks. Child shares consume their immediate parent's separate aggregate delegation ceiling, not another creator root rate. 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 financial namespace; a foreign, cross-namespace, 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.test.agreement.beneficiaryRefusalrecordPDSPDS recordbeta draftDRAFT 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.test.agreement.brokerTermsrecordPDSPDS recordbeta draftBroker-authored, immutable, versioned disclosure of the private operational policies under which the broker settles: commission refund handling, payee cost recovery, payout holds and the platform leg's release rule. Each policy entry is a generated projection of the exact rule definition the broker runs, never free text; the record states policy and carries no amounts, identifiers, provider evidence or per-occurrence schedules. Settlement records reference the exact version frozen for an occurrence at admission. This record grants no allocation authority and is not a universal ARA obligation; another broker may settle without one.
money.atmosphere.test.agreement.defsdefs/xrpc/money.atmosphere.test.agreement.defsApp service-authbeta draftNo description in lexicon yet.
money.atmosphere.test.agreement.offerrecordPDSPDS recordbeta draftPosted allocation terms authored by the offeror; the acceptance takes them exactly as posted and may only narrow scope. A different rate is a different offer version, never a selection. The offer alone grants no allocation authority. Authenticated authorship and ordinary record CIDs bind exact versions. Provider costs, payout timing and broker service policies are separate from this agreement. Authority-changing extensions require a supported tagged variant and calculation profile; unknown authority-bearing fields or variants grant no authority. This record does not determine the legal obligations of a broker or guarantee cash delivery.
money.atmosphere.test.agreement.revocationrecordPDSPDS recordbeta draftDRAFT 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.test.agreement.offer or money.atmosphere.test.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.test.agreement.rootEnablementrecordPDSPDS recordbeta draftDRAFT unpublished candidate. A creator-authored enabled or terminally revoked enrollment under one exact bilateral acceptance, with explicit app-catalog standing scope or selected offerings. The author must be the recipient-proceeds funder and owner of every selected offering; the bound acceptance may be authored by that creator or by the beneficiary, depending on which party authored the offer. One lifecycle exists per creator, agreement namespace and exact acceptance, independent of scope contents, record URI or catalog CIDs. A mismatched funder, offer/acceptance lineage, scope app or counterparty is void. A creator-authenticated enabled successor may explicitly replace scope within the offer and accepted payment types. A revoked successor must retain the prior scope, omit paymentTypes and expiresAt, and is admission-clamped and permanently terminal for that exact root lineage. Deletion, a new record URI, catalog edits or switching scope variants never reopen it; re-enrollment requires a new bilateral acceptance and fresh creator enrollment authority. A beneficiary's new acceptance under the same old standing offer cannot bypass the creator's withdrawal. Exactly one current tip is allowed; branches and ambiguous overlapping acceptances authorize no allocation. No automatic product-specific precedence or fee override is implied.
money.atmosphere.test.agreement.settlementrecordPDSPDS recordbeta draftBroker-authored allocation evidence for an exact occurrence and accepted agreements, with an append-only compensation history. Public retainedAllocation is allocation before private payee charges, not observed Transfer proceeds or bank payout. Provider costs are not encoded here; the settling broker's operational policies are disclosed by the referenced brokerTerms record, never inferred from amounts. Existing payment proof and purchase-context links authenticate association, not later-cycle settlement or cash delivery.

ATM money fields

money.atmosphere.actor.getPayoutStatus18 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsactorstringyesnoformat:at-identifierNo description in lexicon yet.
outputstatusstring<active | action-required | pending | not-ready | temporarily-unavailable>yesnomaxLength:64Synthesized payout readiness.
outputchargesEnabledbooleanyesnononeNo description in lexicon yet.
outputpayoutsEnabledbooleanyesnononeNo description in lexicon yet.
outputdetailsSubmittedbooleanyesnononeNo description in lexicon yet.
outputrequirementsDuearray<string>nonomaxLength:100No description in lexicon yet.
outputcurrentlyDueintegernonononeNo description in lexicon yet.
outputpastDueintegernonononeNo description in lexicon yet.
outputeventuallyDueintegernonononeNo description in lexicon yet.
outputdisabledReasonstringnonomaxLength:128No description in lexicon yet.
outputcurrentDeadlinestringnonoformat:datetimeNo description in lexicon yet.
outputerrorsarray<string>nonomaxLength:100No description in lexicon yet.
outputmessagestringnonomaxLength:512No description in lexicon yet.
outputaccountLinkedbooleannonononeNo description in lexicon yet.
outputsupportRequiredbooleannonononeNo description in lexicon yet.
outputhasHistorybooleannonononeNo description in lexicon yet.
outputinternalOwnerbooleannonononeNo description in lexicon yet.
outputsameLegalEntitybooleannonononeNo description in lexicon yet.
money.atmosphere.actor.getProfile5 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsactorstringyesnoformat:at-identifierNo description in lexicon yet.
outputprofileref:#profileyesyesnoneEither null or { uri, cid, value } where value is money.atmosphere.actor.profile.
def:profileuristringyesnoformat:at-uriNo description in lexicon yet.
def:profilecidstringyesnoformat:cidNo description in lexicon yet.
def:profilevalueref:money.atmosphere.actor.profileyesnononeNo description in lexicon yet.
money.atmosphere.actor.profile5 fields
LocationFieldTypeRequiredNullableLimitsDescription
recorddisplayNamestringnonomaxLength:640, maxGraphemes:64Payment-facing display name.
recorddescriptionstringnonomaxLength:2560, maxGraphemes:256Short payment-facing profile text.
recordavatarblobnonononePayment-facing avatar image.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
recordupdatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.agreement.acceptance13 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordofferref:com.atproto.repo.strongRefyesnononeThe 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.
recordofferorstringyesnoformat:didThe DID whose repo owns the accepted offer.
recordselectionunion<#percentageSelection>yesnononeExact explicitly tagged acceptance of the matching percentage offer at its posted rate. An unknown or mismatched terms/selection pair grants no authority.
recordpolicyref:#policyyesnononeAcceptor-authored delegation and publication attenuation.
recordeffectiveFromstringnonoformat:datetimeOptional inclusive instant from which this acceptance may authorize a new occurrence.
recordexpiresAtstringnonoformat:datetimeOptional exclusive expiry instant after which this acceptance cannot authorize a new occurrence.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact published prior acceptance this one replaces, bound by AT-URI and CID.
recordcreatedAtstringyesnoformat:datetimeClient-declared instant when the acceptor authored this immutable acceptance version.
def:policyaggregateChildShareBpsintegeryesnominimum:0, maximum:10000The exact aggregate immediate-child ceiling, in basis points of this parent's gross occurrence pool, equal to the offer's childDelegation.aggregateChildShareBps, and zero under noDelegation or when delegationDepth is zero. It is repeated, not chosen: a mismatch is not an acceptance. Frozen with each occurrence; a later cap cannot reprice history. This rate ceiling does not waive carry, funding or residual checks.
def:policydelegationDepthintegeryesnominimum:0, maximum:8How many child levels the beneficiary may carve from its pool: equal to the offer's childDelegation.delegationDepth, and 0 under #noDelegation. It is repeated, not chosen. 0 means none.
def:policypublicationref:money.atmosphere.agreement.defs#visibilityyesnononeThe 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.
def:percentageSelectionfeeShareBpsintegeryesnominimum:0, maximum:10000The offer's exact posted rate in basis points, repeated by the acceptor and required to equal it, interpreted against the offered basis by the supported calculation profile. Cumulative lineage rounding and parent-pool funding remain separate from observed processor amounts.
def:percentageSelectionpaymentTypesarray<ref:money.atmosphere.agreement.defs#paymentType>yesnominLength:1, maxLength:16Explicit non-empty subset of the offer's payment types the acceptor permits. New or omitted types are not authorized.
money.atmosphere.agreement.aggregatePolicy9 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordscopeunion<money.atmosphere.agreement.defs#allOfferingsScope | money.atmosphere.agreement.defs#selectedOfferingsScope>yesnononeExplicit 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.
recordaggregateMaxFeeShareBpsintegeryesnominimum:0, maximum:10000Percentage root-rate ceiling per applicable offering and occurrence. Sum every applicable root's exact accepted rate, which equals its posted offer rate. Under the purchase-groups profile the common denominator is merchandise after discounts, excluding shipping and tax. This is not a routing-cost or fixed-expense budget; independent monetary burden, funding and residual guards still apply. 100 equals 1%.
recordchildDelegationDepthintegeryesnominimum:0, maximum:8Creator default for the maximum child-delegation depth a root beneficiary may exercise. 0 means none. An offer the creator accepts may not exceed it.
recordcompilerPolicyVersionstringyesnominLength:1, maxLength:64Version 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.
recordvisibilityref:money.atmosphere.agreement.defs#visibilitynonononePublication policy for this standing policy itself. Public-beta admission requires explicit public visibility; omission or an unsupported value grants no public admission or publication authority. This field does not identify agreement participants or enforce private access. Future permissioned readership requires a separately reviewed Spaces profile; existing private evidence is not retroactively published.
recordeffectiveFromstringnonoformat:datetimeRequested 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.
recordexpiresAtstringnonoformat:datetimeNo description in lexicon yet.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact published current policy tip this one replaces. It must resolve to the same creator repo and financial namespace. A foreign, cross-namespace, ancestor, or otherwise non-tip predecessor is invalid; a superseded tip never reopens after deletion or replay, and competing branches fail closed.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.agreement.beneficiaryRefusal7 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordbeneficiarystringyesnoformat:didThe 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.
recordscopeunion<money.atmosphere.agreement.defs#allOfferingsScope | money.atmosphere.agreement.defs#selectedOfferingsScope>yesnononeExplicit 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.
recordstatestring<refused | withdrawn>yesnomaxLength:16refused creates or continues the refusal for this creator/namespace/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.
recordvisibilityref:money.atmosphere.agreement.defs#visibilitynonononePublication policy for this refusal itself. Public-beta admission requires explicit public visibility; omission or an unsupported value grants no public admission or publication authority. The author and beneficiary identify the affected parties independently of readership. Future private access requires a separately reviewed Spaces profile. Existing private refusal evidence remains private and cannot be retroactively published.
recordeffectiveFromstringnonoformat:datetimeRequested 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.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact published prior refusal version this one replaces, bound by AT-URI and CID. It must resolve to the same creator repo, financial namespace, and beneficiary; a foreign, cross-namespace, ancestor, or otherwise non-tip predecessor is invalid, and competing branches fail closed.
recordcreatedAtstringyesnoformat:datetimeClient-declared instant when the creator authored this immutable refusal version.
money.atmosphere.agreement.brokerTerms10 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordpoliciesarray<ref:#policy>yesnominLength:1, maxLength:8Complete set of policies this version discloses, one per agreement, in ascending agreement order. An omitted agreement is not implicitly retained from a previous version.
recordtextstringnonomaxLength:200000, maxGraphemes:20000Optional human-readable explanation of the same policies. It never overrides a generated entry; a version that changes only this text keeps identical entries.
recordeffectiveFromstringyesnoformat:datetimeInclusive instant from which the broker applies this version to newly admitted occurrences. An occurrence keeps the version frozen for it at admission; this instant never rebinds an earlier occurrence and is not evidence of any party's consent.
recordpreviousref:com.atproto.repo.strongRefnonononeThe exact prior version this one supersedes, bound by AT-URI and CID. Absent only on the first version. Versions are immutable; a change is always a new record.
recordcreatedAtstringyesnoformat:datetimeBroker-declared instant when this version was authored; not evidence of any party's consent.
def:policyagreementstring<atm_commission_refund_policy | atm_payee_cost_policy | atm_app_fee_payout_hold | atm_platform_leg_release>yesnomaxLength:64Private agreement identifier the policy version belongs to, matching the identifier parties accept privately. A value a verifier does not recognize discloses nothing it may rely on.
def:policyversionstringyesnomaxLength:64Exact policy version identifier, for example atm-commission-refund-v1. It names a closed rule set kept forever in the broker's version registry; retired versions remain decodable.
def:policyrulesarray<ref:#rule>yesnominLength:1, maxLength:32Generated key/value projection of the private rule definition, in canonical key order. A hold policy is stated as its formula (anchor, minimum days, which declared restriction survives), never as an evaluated per-occurrence day count.
def:rulekeystringyesnominLength:1, maxLength:64Rule name from the private definition.
def:rulevaluestringyesnominLength:1, maxLength:256Rule value from the private definition, as its canonical string.
money.atmosphere.agreement.defs11 fields
LocationFieldTypeRequiredNullableLimitsDescription
def:paymentTypevalueref:#paymentTypeValueyesnononePayment type selected by this array item. The object wrapper permits future per-type attenuation without changing the array element shape.
def:surfaceauthoritystringyesnoformat:didDID 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:surfaceidstringyesnominLength:1, maxLength:512Surface 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:roleSelectionroleref:#roleyesnononeChild role permitted by this item. A future reviewed compiler must explicitly allowlist supported roles and fail closed on unknown values.
def:currencyAmountamountMinorintegeryesnominimum:0, maximum:9007199254740991Non-negative amount in the currency's smallest integral unit.
def:currencyAmountcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code for the commercial currency. Native tokens require a separate asset/network/atomic-amount union variant.
def:assetAmountamountAtomicstringyesnominLength:1, maxLength:78Canonical 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 and the amended payment-v1 receipt value domain both permit canonical zero; their complete record validation and settlement/publication authority requirements remain separate.
def:assetAmountassetstringyesnominLength:11, maxLength:179Exact 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:offeringSelectionsubjectref:com.atproto.repo.strongRefyesnononeExact published catalog record this item selects.
def:appCatalogScopeappstringyesnoformat:didThe exact beneficiary app of the enrolled root agreement. The creator deliberately delegates catalog enrollment to this app; an app-supplied identifier alone grants nothing.
def:selectedOfferingsScopeofferingsarray<ref:money.atmosphere.agreement.defs#offeringSelection>yesnominLength:1, maxLength:64Exact 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.offer28 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordroleref:money.atmosphere.agreement.defs#roleyesnononeWhat the beneficiary provides: checkout hosts the buyer-facing transaction surface; service provides recurring member-facing or backend services; discovery supplies an attributed referral; fulfillment delivers the product; infrastructure supports execution. A role describes work and attribution, not identity, funding position or an implicit fee entitlement. Funding is selected separately. Implementations must explicitly support the chosen role.
recordbeneficiaryPartyref:money.atmosphere.agreement.defs#beneficiaryPartyyesnononeWhich 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.
recordcounterpartystringnonoformat:didThe 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.
recordfundingunion<#recipientProceedsFunding | #parentAgreementFunding>yesnononeOpen 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.
recordscoperef:#scopeyesnononeEnvironment, payment-type, offering, and surface boundary for these terms.
recordtermsunion<#percentageTerms>yesnononeOpen tagged economic terms, initially the percentage branch only. A future fixed or quoted compensation branch needs its own reviewed authority and does not inherit percentage-required fields. Unknown branches refuse.
recordtriggerref:money.atmosphere.agreement.defs#triggeryesnononeWhat earns the share: a settled occurrence, an attributed settled sale, or a qualifying settled scheduled period while authority remains effective. Attributed sale is exclusive per group, immediate funding pool and role; unconditional obligations stack. Zero discounted periods can qualify; retries, trials, failed invoices and prorations do not invent periods.
recordattributionref:#attributionnonononeOptional 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.
recorddelegationunion<#noDelegation | #childDelegation>yesnononeOpen 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.
recordvisibilityref:money.atmosphere.agreement.defs#visibilityyesnononePublication 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.
recordeffectiveFromstringnonoformat:datetimeOptional inclusive instant from which this offer may be accepted and compiled.
recordexpiresAtstringnonoformat:datetimeOptional exclusive expiry instant after which this offer cannot authorize a new occurrence.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact published prior offer version this one replaces, bound by AT-URI and CID.
recordcreatedAtstringyesnoformat:datetimeClient-declared instant when the offeror authored this immutable offer version.
def:parentAgreementFundingparentref:com.atproto.repo.strongRefyesnononeThe 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:parentAgreementFundingparentAcceptanceref:com.atproto.repo.strongRefyesnononeThe 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:scoperailsarray<string<stripe-connect | tempo>>nonominLength:1, maxLength:16Optional exact rail restriction. Omission means every rail the compiler supports; a present list admits only its named supported rails. A child may narrow but never broaden its parent's restriction. Unknown rails grant no execution authority. tempo is a reserved later execution capability, not enabled by this declaration.
def:scopepaymentTypesarray<ref:money.atmosphere.agreement.defs#paymentType>yesnominLength:1, maxLength:16Explicit 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:scopeofferingsarray<ref:com.atproto.repo.strongRef>nonominLength:1, maxLength:64Exact catalog records (product, membership program or tier, ticketed event) the terms are limited to.
def:scopesurfacesarray<ref:money.atmosphere.agreement.defs#surface>nonominLength:1, maxLength:16Optional 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:childDelegationaggregateChildShareBpsintegeryesnominimum:0, maximum:10000Exact aggregate immediate-child share in basis points of this parent's gross occurrence pool, not the sale or an ancestor pool. The acceptance records this same exact value. It is a budget across all immediate children, and each child offer must fit within it. Admission budgets all unconditional child rates plus one maximum per exclusive attributed role; occurrence compilation checks represented selected rates before rounding, including on a zero pool. Descendants have separate parent ceilings. No omission default or implicit authority for unseen children.
def:childDelegationdelegationDepthintegeryesnominimum:1, maximum:8Exact number of descendant funding hops permitted below this agreement; the acceptance records this same value.
def:childDelegationrolesarray<ref:money.atmosphere.agreement.defs#roleSelection>yesnominLength:1, maxLength:8Child roles the beneficiary may fund.
def:attributionconversionWindowSecondsintegernonominimum:1, maximum:31536000How 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:attributionrecurringTailunion<#tailCycleCount | #tailAgreementLifetime>nonononeOpen 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:tailCycleCountcyclesintegeryesnominimum:1, maximum:1200Maximum qualifying settled scheduled periods, including fully discounted zero periods, once per authenticated relationship/period. Failed or unsettled invoices, trials, duplicate deliveries, prorations, refunds, payout installments and pauses do not add periods; cadence changes do not reset the count. Ambiguous period attribution refuses. Three qualifying free periods can exhaust a three-period term.
def:percentageTermsbasisref:money.atmosphere.agreement.defs#basisyesnononenet-merchandise applies to recipientProceedsFunding and excludes attributed shipping and tax after subtracting merchandise discounts. parent-pool applies to parentAgreementFunding and names the exact immediate parent gross percentage pool, not incoming carry or the whole sale. Historical commissionable-gross and unsupported bases refuse.
def:percentageTermsfeeShareBpsintegeryesnominimum:0, maximum:10000Exact share of the named basis, in basis points, that the offeror posts. The acceptance records this same exact value; a lower or higher rate is a different offer version, never a selection.
money.atmosphere.agreement.revocation3 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordsubjectref:com.atproto.repo.strongRefyesnononeThe 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.
recordeffectiveAtstringnonoformat:datetimeOptional 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.
recordcreatedAtstringyesnoformat:datetimeClient-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
LocationFieldTypeRequiredNullableLimitsDescription
recordstatestring<enabled | revoked>yesnomaxLength:16enabled creates an initial enrollment or explicitly replaces the current enabled scope within the same creator/namespace/exact-acceptance lineage. revoked is a non-expiring terminal withdrawal of that entire enrollment; it must supersede the exact current tip, retain its scope, and omit paymentTypes and expiresAt. A product-specific removal is an explicit enabled scope replacement, not a terminal revocation. No successor may reopen a revoked lineage.
recordacceptanceref:com.atproto.repo.strongRefyesnononeThe 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.
recordscopeunion<money.atmosphere.agreement.defs#appCatalogScope | money.atmosphere.agreement.defs#selectedOfferingsScope>yesnononeExplicit enrollment scope. appCatalogScope delegates current and future app-catalog membership within the accepted terms; selectedOfferingsScope binds exact creator-owned URI/CID selections and never silently acquires material-equivalent matching. Omission, an empty selection, an unknown variant or an unsupported constraint authorizes no execution. Later selector semantics require a newly authored opt-in variant; old records retain their meaning. Both variants belong to the same enrollment lifecycle and cannot coexist as independent tips for one acceptance.
recordpaymentTypesarray<ref:money.atmosphere.agreement.defs#paymentType>nonominLength:1, maxLength:16Optional non-empty payment-type narrowing under the acceptance and selected scope 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.
recordvisibilityref:money.atmosphere.agreement.defs#visibilitynonononePublication policy for this enrollment decision itself. Public-beta admission requires explicit public visibility; omission or an unsupported value grants no public admission or publication authority. 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 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. Participants remain identified by authenticated authorship and references, not this field; future private readership requires a separately reviewed Spaces profile.
recordeffectiveFromstringnonoformat:datetimeRequested 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.
recordexpiresAtstringnonoformat:datetimeOptional end for an enabled decision only. state=revoked must omit expiresAt: a terminal tombstone never expires or reopens its lineage.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact prior enrollment version this one replaces, bound by URI and CID to retained authenticated evidence in the authorized venue. It must resolve to the exact current tip with the same creator, financial namespace and acceptance. A scope replacement remains in that same lifecycle; a different acceptance starts a new root-enablement URI/lineage and must not supersede this one. Required when state is revoked; a terminal predecessor cannot be superseded.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.agreement.settlement38 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordkindstring<allocation | reversal | reinstatement>yesnomaxLength:64Allocation establishes an occurrence; reversal or reinstatement appends a signed allocation change under the named calculation policy. Cost-only adjustments are not allocation evidence.
recordpublicationstring<atm-public-beta-live-v2>yesnomaxLength:64The 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.
recordeventIdstringyesnominLength:32, maxLength:32Opaque 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.
recordpreviousref:com.atproto.repo.strongRefnonononeRequired 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.
recordproofref:com.atproto.repo.strongRefyesnononeThe exact settling-broker-authored money.atmosphere.payment.proof URI and CID. It attests its original payment occurrence and anchors the broker's authority snapshot; later recurring cycles require separate occurrence authority. Naming a broker never expands a verifier's independently configured trust policy.
recordbrokerTermsref:com.atproto.repo.strongRefnonononeOptional exact money.atmosphere.agreement.brokerTerms version, authored by the settling broker, under which this occurrence's cash facts must be read: commission refund handling, payee cost recovery, payout holds and the platform leg's release rule. It is the version frozen for the occurrence at admission, never the version current when settlement is authored; it is set on the allocation and equal on every compensation of the occurrence. It discloses policy and supplies no allocation or cash authority. The ATM profile requires it; another broker may settle without it.
recordexecutionunion<#processorExecution>nonononeOptional open execution-evidence union; the revision-7 pure ARA verifier rejects records carrying execution. This schema admits only the opaque processor branch; omission has processor meaning only under the currently admitted processor profile. Raw processor objects and identifiers remain private. Unknown future branches cannot authorize effects. Chain execution requires a later reviewed profile.
recordoccurrenceref:#occurrenceyesnononeNo description in lexicon yet.
recordroundingref:#roundingPolicyyesnononeThe rounding, carry, and residual policy under which every leg was computed.
recordcreatedAtstringyesnoformat:datetimeBroker-declared authoring time, not proof of a provider effect or cash delivery.
recordcalculationProfilestring<ara-allocation-purchase-groups-v3>yesnomaxLength:64Exact supported allocation calculation profile, independent of broker identity, private provider charges and execution. Under ara-allocation-purchase-groups-v3 a reversal or reinstatement recomputes the frozen agreement graph and carry grants at netBasis under the same rounding policy; there is no separate clawback identifier, and which external events reduce commission or prove cash recovery is never decided by this record. Unknown and retired cost-bearing profiles grant no authority.
recordgroupsarray<ref:#allocationGroup>yesnominLength:1, maxLength:64Complete frozen group set/order on allocation and every correction, including unchanged groups. At most 80 legs and 100 context selectors in the WHOLE record, within retained byte/work limits. Group labels never determine priority. No independent group history.
def:occurrencewitnessstring<broker | contract>nonomaxLength:64Checkout attribution witness class; the revision-7 pure ARA verifier rejects records carrying occurrence.witness. The currently admitted processor profile uses the settling broker, including when this optional field is absent. contract is reserved for a separately reviewed future profile. A payer signature or processor execution does not witness the checkout surface or authority currentness; unknown witness classes cannot authorize effects.
def:occurrencecycleAnchorAtstringnonoformat:datetimeThe exact recurring cycle anchor this occurrence settled, when the occurrence is a subscription cycle.
def:occurrencesnapshotref:#snapshotnonononeNo description in lexicon yet.
def:snapshotprofilestring<atm-settlement-occurrence-v1>yesnomaxLength:64Open 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:snapshotcommitmentstringyesnominLength:64, maxLength:64The occurrence commitment under profile: 64 lowercase hexadecimal characters.
def:legagreementref:com.atproto.repo.strongRefyesnononeExact money.atmosphere.agreement.acceptance URI and CID. Resolve its exact offer and funding references; funding determines root/child position.
def:legallocationref:#allocationyesnononeNo description in lexicon yet.
def:legpayoutref:#payoutnonononeReserved for chain-settled legs only and absent on every processor-settled leg; the revision-7 pure ARA verifier rejects records carrying legs[].payout. Its future interpretation requires a reviewed chain execution profile; it never exposes a connected-account mapping.
def:payoutwalletBindingref:com.atproto.repo.strongRefyesnononeExact future money.atmosphere.actor.walletBinding version selected at the occurrence anchor; the binding record is not defined or activated by this cut.
def:payoutaccountstringyesnominLength:1, maxLength:256Exact chain-qualified CAIP-10 account used by this leg. A future reviewed chain profile supplies canonical validation and historical wallet-binding verification before any claim or effect.
def:signedCurrencyAmountamountMinorintegeryesnominimum:-9007199254740991, maximum:9007199254740991Signed minor units within ±(2^53 − 1).
def:signedCurrencyAmountcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 code, exactly three letters; equals the occurrence basis currency.
def:signedAssetAmountamountAtomicstringyesnominLength:1, maxLength:79Matches ^-?(0|[1-9][0-9]{0,77})$ with -0 rejected and magnitude at most 2^256 − 1; parsed only with arbitrary precision.
def:signedAssetAmountassetstringyesnominLength:11, maxLength:179The 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:allocationgrossunion<#signedCurrencyAmount | #signedAssetAmount>yesnononeFloor-rounded amount from occurrence basis for a root, or immediate parent gross for a child. A compensation stores the difference between cumulative floors.
def:allocationcarryReleasedunion<#signedCurrencyAmount | #signedAssetAmount>yesnononeBeneficiary 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:allocationdelegatedOutflowunion<#signedCurrencyAmount | #signedAssetAmount>yesnononeGross plus carry allocated to immediate children, not all descendants; zero for a leaf.
def:allocationretainedAllocationunion<#signedCurrencyAmount | #signedAssetAmount>yesnononeOwn cumulative entitlement before independently accepted private payee charges, or its signed change in a compensation. Never evidence of cash delivered or recovered.
def:roundingPolicypolicystring<atm-rounding-floor-carry-v1>yesnomaxLength:64Open rounding-policy vocabulary. atm-rounding-floor-carry-v1 floors every leg, carries sub-unit remainders per beneficiary lineage, and releases carry only from a later occurrence's residual; the broker does not acquire the residue. A reversal or reinstatement recomputes the same rule at the net basis (the calculation profile's net-basis recomputation) rather than apportioning a residue. A verifier must allowlist supported values and fail closed on unknown values.
def:allocationGrouprecipientstringyesnoformat:didExact recipient scope and independently authenticated root funder. Recipient scopes in the associated payment must be unique; several future groups may select the same scope.
def:allocationGroupcontextsarray<ref:#purchaseContextSelector>nonominLength:1, maxLength:100Optional indexes into this recipient's authenticated payment purchase contexts. Full commitment preimage or authorized guest F is required to establish association; proof-only arithmetic must not pretend it established this link.
def:allocationGroupcalculationunion<#percentageCalculation>yesnononeOpen calculation union, initially percentage only. Unsupported variants have no fallback to percentage economics.
def:purchaseContextSelectorindexintegeryesnominimum:0, maximum:99Zero-based context position in the unique matching recipient scope; checked against the authenticated actual context count, not only the wire maximum.
def:percentageCalculationbasisunion<money.atmosphere.agreement.defs#currencyAmount | money.atmosphere.agreement.defs#assetAmount>yesnononeOriginal net merchandise after its accepted discounts, excluding attributed shipping, tax and pass-throughs. Frozen per group; never reconstructed from payment total or live prices.
def:percentageCalculationnetBasisunion<money.atmosphere.agreement.defs#currencyAmount | money.atmosphere.agreement.defs#assetAmount>nonononeRequired on reversal/reinstatement: policy-recognised remaining basis, from zero through original basis. Absent on allocation. A processor refund is not by itself evidence of this amount; accepted policy and exact attribution remain separate inputs. At least one group basis changes in each compensation.
def:percentageCalculationlegsarray<ref:#leg>yesnominLength:1, maxLength:80Every applied acceptance in frozen roots-then-depth-first ancestry order. Every compensation has the identical leg set in identical order, including zero deltas.
money.atmosphere.analytics.getPaymentVolumeTrends25 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<test | live>nonomaxLength:16Which app environment to report on.
paramsgranularitystring<hour | day>nonomaxLength:8Time-bucket size.
paramswindowDaysintegernonominimum:1, maximum:92Lookback window in days from now.
paramscurrencystringnonominLength:3, maxLength:16Optional read-only filter over historical ledger denominations; normalized case-insensitively.
outputseriesarray<ref:#bucket>yesnononeNo description in lexicon yet.
outputbyMethodarray<ref:#methodStat>yesnononeNo description in lexicon yet.
outputbyCurrencyarray<ref:#currencyStat>yesnononeNo description in lexicon yet.
outputwindowref:#windowyesnononeNo description in lexicon yet.
def:bucketbucketstringyesnoformat:datetimeStart of the time bucket (UTC).
def:bucketcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code.
def:bucketcountintegeryesnononeAll payments in the bucket.
def:bucketsuccessCountintegeryesnononePayments with a settled status in the bucket.
def:bucketgrossAmountintegeryesnononeGross settled volume for this currency in the bucket.
def:methodStatmethodstringyesnomaxLength:32Payment method type (e.g.
def:methodStatcurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:methodStatcountintegeryesnononeNo description in lexicon yet.
def:methodStatgrossAmountintegeryesnononeNo description in lexicon yet.
def:currencyStatcurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:currencyStatcountintegeryesnononeNo description in lexicon yet.
def:currencyStatsuccessCountintegeryesnononeNo description in lexicon yet.
def:currencyStatgrossAmountintegeryesnononeNo description in lexicon yet.
def:windowgranularitystringyesnomaxLength:8No description in lexicon yet.
def:windowwindowDaysintegeryesnononeNo description in lexicon yet.
def:windowfromstringyesnoformat:datetimeNo description in lexicon yet.
def:windowtostringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.analytics.getRefundAnalysis19 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
paramswindowDaysintegernonominimum:1, maximum:92No description in lexicon yet.
paramscurrencystringnonominLength:3, maxLength:16No description in lexicon yet.
outputbyReasonarray<ref:#reasonStat>yesnononeNo description in lexicon yet.
outputsummaryarray<ref:#currencySummary>yesnononeNo description in lexicon yet.
outputwindowref:#windowyesnononeNo description in lexicon yet.
def:reasonStatreasonCodestringyesnomaxLength:32Refund reason code, or 'unspecified'.
def:reasonStatstatusstringyesnomaxLength:24No description in lexicon yet.
def:reasonStatcurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:reasonStatcountintegeryesnononeNo description in lexicon yet.
def:reasonStatamountintegeryesnononeNo description in lexicon yet.
def:currencySummarycurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:currencySummaryrefundCountintegeryesnononeNo description in lexicon yet.
def:currencySummaryrefundedAmountintegeryesnononeNo description in lexicon yet.
def:currencySummarysettledCountintegeryesnononeSettled payments in window — denominator for refund rate.
def:currencySummarysettledGrossAmountintegeryesnononeNo description in lexicon yet.
def:windowwindowDaysintegeryesnononeNo description in lexicon yet.
def:windowfromstringyesnoformat:datetimeNo description in lexicon yet.
def:windowtostringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.analytics.getSubscriptionMetrics14 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
paramswindowDaysintegernonominimum:1, maximum:92No description in lexicon yet.
paramscurrencystringnonominLength:3, maxLength:16No description in lexicon yet.
outputbyCurrencyarray<ref:#currencyMetrics>yesnononeNo description in lexicon yet.
outputwindowref:#windowyesnononeNo description in lexicon yet.
outputnotesarray<string>yesnononeNo description in lexicon yet.
def:currencyMetricscurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:currencyMetricsactiveCountintegeryesnononeNo description in lexicon yet.
def:currencyMetricsmrrintegeryesnononeInterval-normalized monthly recurring revenue (current active snapshot).
def:currencyMetricsnewCountintegeryesnononeSubscriptions created in the window.
def:currencyMetricscanceledCountintegeryesnononeSubscriptions canceled in the window (by canceledAt).
def:windowwindowDaysintegeryesnononeNo description in lexicon yet.
def:windowfromstringyesnoformat:datetimeNo description in lexicon yet.
def:windowtostringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.app.assertRecipient2 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputrecipientDidstringyesnoformat:didThe recipient (creator) DID asserted by the app-held user session.
outputacceptedbooleanyesnononeNo description in lexicon yet.
money.atmosphere.app.auditFeeDistributions22 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramscursorstringnonomaxLength:128Opaque keyset cursor from a prior page.
paramsenvironmentstring<test | live>nonomaxLength:16Which app environment's payouts to return.
paramspaymentIdstringnonomaxLength:128Optional filter to a single originating payment.
paramsstatusstring<queued | scheduled | transferred | held | reversed | failed>nonomaxLength:16Optional filter to one synthesized payout status.
paramslimitintegernonominimum:1, maximum:200No description in lexicon yet.
outputdistributionsarray<ref:#distribution>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:128Keyset cursor for the next page; absent when no more rows.
def:distributionidstringyesnomaxLength:128Distribution row id.
def:distributionpaymentIdstringyesnomaxLength:128The originating payment id (the app-visible payment id).
def:distributionchargeIdstringnonomaxLength:256Processor charge/invoice id this distribution settled against.
def:distributionrolestringyesnomaxLength:32For this endpoint, distribution role 'app' identifies the calling app as the payee of ATM's contractual revenue-share obligation.
def:distributionamountintegeryesnononeGross 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:distributioncurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code.
def:distributionstatusstring<queued | scheduled | transferred | held | reversed | failed>yesnomaxLength:16Synthesized payout status.
def:distributionheldReasonstringnonomaxLength:512Operator-authored reason a queued transfer is held (only set when status = held).
def:distributionheldUntilstringnonoformat:datetimeScheduled payout time.
def:distributionprocessorTransferIdstringnonomaxLength:256Rail-agnostic processor transfer id for the payout movement (e.g.
def:distributionclawbackStatusstring<pending | reversed | failed | waived>nonomaxLength:16Partial-refund clawback state of an already-transferred revenue-share payment from ATM to the app.
def:distributionclawbackAmountintegeryesnononeAmount of ATM's revenue-share payment to the app clawed back by a partial refund, in the smallest currency unit.
def:distributionprocessorReversalIdstringnonomaxLength:256Rail-agnostic processor reversal id for the clawback/reversal movement.
def:distributionperiodstringnonomaxLength:16Optional operator grouping period.
def:distributioncreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.app.clearRecipientFeeShare3 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputrecipientDidstringyesnoformat:didNo description in lexicon yet.
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
outputclearedbooleanyesnononeNo description in lexicon yet.
money.atmosphere.app.defs64 fields
LocationFieldTypeRequiredNullableLimitsDescription
def:modulespaymentsbooleanyesnononeNo description in lexicon yet.
def:modulesproductsbooleanyesnononeNo description in lexicon yet.
def:modulessubscriptionsbooleanyesnononeNo description in lexicon yet.
def:modulespledgesbooleannonononeNo description in lexicon yet.
def:modulesticketsbooleanyesnononeNo description in lexicon yet.
def:modulesmachinePaymentsbooleannonononePlanned machine-payments (MPP/x402) module.
def:modulesfederatedCommerceOrdersbooleannonononeRead-only rollout state for revisioned product and commission orders.
def:modulesfederatedFiniteInventorybooleannonononeRead-only app/environment rollout state for shared finite product inventory.
def:modulesreversibleFeeWaiversbooleannonononeRead-only ATM deployment readiness for reversible automatic app-fee waivers.
def:subscriptionPolicyactiveLimitstring<multiple | one-per-payer-recipient>yesnomaxLength:64No description in lexicon yet.
def:ticketingqrPassesbooleanyesnononeNo description in lexicon yet.
def:ticketingwalletPassesbooleanyesnononeNo description in lexicon yet.
def:ticketFeebpsintegeryesnominimum:0, maximum:1000ATM-owned ticket processing fee percentage in basis points.
def:ticketFeeflatAmountintegeryesnominimum:0, maximum:1000ATM-owned flat ticket processing fee in cents per paid ticket.
def:ticketFeeflatCurrencystring<usd>nonominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code for flatAmount.
def:ticketFeepassToBuyerbooleanyesnononeWhether the ATM ticket processing fee is added to buyer checkout price instead of absorbed by the organizer.
def:payoutholdDaysintegeryesnominimum:0, maximum:90Revenue-share payout hold in days.
def:feeTiersubscriptionGroupKeystringyesnomaxLength:128The app-owned plan that grants this tier, matched against a settling subscription's subscriptionGroupKey.
def:feeTierfeeShareBpsintegeryesnominimum:0, maximum:10000Lowered ATM application-fee rate (basis points) for that subscriber's creator revenue.
def:feeTieractiveSubscriptionPolicystring<reversible-waiver>nonomaxLength:32Optional exact policy.
def:feeTierlabelstringnonomaxLength:64Optional label; stored as the resulting override's reason.
def:checkoutthemestring<auto | light | dark>yesnomaxLength:16No description in lexicon yet.
def:paymentMethodsenabledarray<string<card | link | apple_pay | google_pay | us_bank_account | klarna>>yesnomaxLength:12No description in lexicon yet.
def:paymentMethodsdisabledarray<string<card | link | apple_pay | google_pay | us_bank_account | klarna>>yesnomaxLength:12No description in lexicon yet.
def:paymentMethodsdynamicPaymentMethodsbooleanyesnononeNo description in lexicon yet.
def:publicRecordPaymentPolicyappRecordstring<public | private>nonomaxLength:16No description in lexicon yet.
def:publicRecordPaymentPolicyattestationstring<public | private>nonomaxLength:16No description in lexicon yet.
def:publicRecordsPolicyenabledbooleanyesnononeMaster switch: when false ATM writes no public attested record for this app regardless of per-payment-type visibility.
def:publicRecordsPolicydefaultsref:#publicRecordPaymentPolicyyesnononeNo description in lexicon yet.
def:publicRecordsPolicybyPaymentTyperef:#publicRecordsPolicyByPaymentTypeyesnononeNo description in lexicon yet.
def:xrpcReceiverserviceRefstringyesnomaxLength:300No description in lexicon yet.
def:xrpcReceivermethodstring<money.atmosphere.event.receiveEvent | money.atmosphere.event.receive>yesnomaxLength:300, format:nsidATM event receiver method.
def:eventDeliverytransportstring<none | webhook | xrpc>yesnomaxLength:16No description in lexicon yet.
def:eventDeliveryxrpcReceiverref:#xrpcReceiveryesnononeNo description in lexicon yet.
def:webhookEventSettingtypestring<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.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>yesnomaxLength:128ATM webhook event type, such as payment.completed.
def:webhookEventSettingenabledbooleanyesnononeNo description in lexicon yet.
def:webhookconfiguredbooleanyesnononeNo description in lexicon yet.
def:webhookurlstringyesyesformat:uriNo description in lexicon yet.
def:webhookpausedbooleanyesnononeNo description in lexicon yet.
def:webhooksecretRotatedAtstringyesyesformat:datetimeNo description in lexicon yet.
def:webhookpreviousSecretExpiresAtstringyesyesformat:datetimeNo description in lexicon yet.
def:configappDidstringyesnoformat:didNo description in lexicon yet.
def:configenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
def:configstatusstring<active | sandbox>yesnomaxLength:32App-environment status.
def:configappUrlstringyesyesformat:uriNo description in lexicon yet.
def:configfeeShareBpsintegeryesnominimum:0, maximum:10000No description in lexicon yet.
def:configwebhookref:#webhookyesnononeNo description in lexicon yet.
def:configappConfigref:#configAppConfigyesnononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypetipref:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypesubscriberef:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypeshopref:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypecommissionref:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypeticketref:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:configAppConfigmodulesref:#modulesyesnononeNo description in lexicon yet.
def:configAppConfigsubscriptionPolicyref:#subscriptionPolicyyesnononeNo description in lexicon yet.
def:configAppConfigticketingref:#ticketingyesnononeNo description in lexicon yet.
def:configAppConfigticketFeeref:#ticketFeeyesnononeNo description in lexicon yet.
def:configAppConfigpayoutref:#payoutyesnononeNo description in lexicon yet.
def:configAppConfigcheckoutref:#checkoutyesnononeNo description in lexicon yet.
def:configAppConfigpaymentMethodsref:#paymentMethodsyesnononeNo description in lexicon yet.
def:configAppConfigpublicRecordsref:#publicRecordsPolicyyesnononeNo description in lexicon yet.
def:configAppConfigeventDeliveryref:#eventDeliveryyesnononeNo description in lexicon yet.
def:configAppConfigwebhookEventsarray<ref:#webhookEventSetting>yesnomaxLength:128No description in lexicon yet.
def:configAppConfigfeeTiersarray<ref:#feeTier>yesnomaxLength:20Declarative 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
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
money.atmosphere.app.getRecipientApproval6 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsrecipientDidstringyesnomaxLength:2048, format:didNo description in lexicon yet.
paramsenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
outputstatusstring<not-requested | pending | approved | blocked | revoked | needs-review>yesnomaxLength:32No description in lexicon yet.
outputidstringnonomaxLength:128No description in lexicon yet.
outputonboardingUrlstringnonoformat:uriNo description in lexicon yet.
outputpaymentSetupstring<not-checked | required | ready | unavailable>yesnomaxLength:32not-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.listRecipientFeeShares18 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
paramsrecipientDidstringnonoformat:didNo description in lexicon yet.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputfeeSharesarray<ref:#feeShare>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:feeSharerecipientDidstringyesnoformat:didNo description in lexicon yet.
def:feeShareenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
def:feeSharefeeShareBpsintegeryesnominimum:0, maximum:10000No description in lexicon yet.
def:feeShareoriginstring<manual | auto-tier>yesnomaxLength:16How the override was set.
def:feeShareactiveSubscriptionPolicystring<future-only | reversible-waiver>yesnomaxLength:32Whether this override affects only future recurring relationships or is an ATM-managed reversible waiver for running relationships.
def:feeShareactiveSubscriptionRepriceKindstring<apply | restore>yesnomaxLength:16Current running-relationship convergence direction.
def:feeShareactiveSubscriptionRepricePendingbooleanyesnononeTrue until ATM has converged every eligible running relationship for this override generation.
def:feeSharereasonstringnonomaxLength:64No description in lexicon yet.
def:feeSharesourceSubscriptionIdstringnonomaxLength:256No description in lexicon yet.
def:feeShareexpiresAtstringnonoformat:datetimeNo description in lexicon yet.
def:feeSharecreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:feeShareupdatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.app.requestRecipientApproval32 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputrecipientDidstringyesnoformat:didNo description in lexicon yet.
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputpaymentTypesarray<string<tip | subscribe | shop | commission | ticket>>yesnominLength:1, maxLength:32No description in lexicon yet.
inputfeeShareBpsintegernonominimum:0, maximum:10000Maximum ATM application-fee rate requested for this recipient, in basis points of the gross payment.
inputpublicRecordsref:#publicRecordsPolicynonononeNo description in lexicon yet.
inputrequestReasonstringnonomaxLength:3000, maxGraphemes:300No description in lexicon yet.
inputsetupReturnUrlstringnonoformat:uriNo description in lexicon yet.
inputrecipientAssertionJwtstringnonomaxLength:4096Optional short-lived recipient (creator) presence token: a com.atproto.server.getServiceAuth JWT with iss = recipientDid, aud = ATM broker, lxm = money.atmosphere.app.assertRecipient.
outputidstringyesnomaxLength:128No description in lexicon yet.
outputstatusstring<pending | approved | blocked | revoked | needs-review>yesnomaxLength:32No description in lexicon yet.
outputdashboardUrlstringyesnoformat:uriNo description in lexicon yet.
outputonboardingUrlstringnonoformat:uriATM-hosted URL where the creator can finish payment setup.
outputpaymentTypesarray<string<tip | subscribe | shop | commission | ticket>>yesnomaxLength:32No description in lexicon yet.
outputfeeShareBpsintegeryesnominimum:0, maximum:10000No description in lexicon yet.
outputticketFeeref:#ticketFeenonononeExact ATM ticket fee terms included in the pending approval when paymentTypes contains ticket.
outputmaterialChangeReasonsarray<string>nonomaxLength:32Which requested terms materially changed versus the existing approval (empty when none).
outputautoApprovedbooleannonononeDeprecated compatibility field.
outputneedsPaymentSetupbooleannonononeTrue when the app should route the creator through ATM to finish setup.
def:publicRecordPaymentPolicyappRecordstring<public | private>nonomaxLength:16No description in lexicon yet.
def:publicRecordPaymentPolicyattestationstring<public | private>nonomaxLength:16No description in lexicon yet.
def:publicRecordsPolicyenabledbooleannonononeWhether this recipient allows matching app-originated checkouts to remain eligible for ATM's public payment-record flow.
def:publicRecordsPolicydefaultsref:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:publicRecordsPolicybyPaymentTyperef:#publicRecordsPolicyByPaymentTypenonononeNo description in lexicon yet.
def:ticketFeebpsintegeryesnominimum:0, maximum:1000No description in lexicon yet.
def:ticketFeeflatAmountintegeryesnominimum:0, maximum:1000No description in lexicon yet.
def:ticketFeeflatCurrencystring<usd>nonominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code.
def:ticketFeepassToBuyerbooleanyesnononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypetipref:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypesubscriberef:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypeshopref:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypecommissionref:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
def:publicRecordsPolicyByPaymentTypeticketref:#publicRecordPaymentPolicynonononeNo description in lexicon yet.
money.atmosphere.app.setRecipientFeeShare14 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputrecipientDidstringyesnoformat:didNo description in lexicon yet.
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputfeeShareBpsintegeryesnominimum:0, maximum:10000Lower ATM application-fee rate this app asks ATM to charge this recipient, in basis points of gross.
inputreasonstringnonomaxLength:64App-chosen label for reconciliation (e.g.
inputsourceSubscriptionIdstringnonomaxLength:256Optional audit pointer to the app-owned subscription justifying the discount.
inputexpiresAtstringnonoformat:datetimeOptional expiry; past it the override is ignored and fees return to the configured rate.
inputapplyToActiveSubscriptionsbooleannonononeAlso request a lower application_fee_percent on the app's running subscriptions for this recipient (never raises; batch-capped).
outputrecipientDidstringyesnoformat:didNo description in lexicon yet.
outputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
outputfeeShareBpsintegeryesnominimum:0, maximum:10000No description in lexicon yet.
outputbaseFeeShareBpsintegeryesnominimum:0, maximum:10000The app's configured fee this override lowers from.
outputappliedToSubscriptionsintegeryesnominimum:0No description in lexicon yet.
outputskippedSubscriptionsintegeryesnominimum:0Running subscriptions not re-priced by this call, including active relationships deferred behind exact prepared processor work.
outputhasMoreSubscriptionsbooleannonononeTrue when more eligible running subscriptions remain or at least one active relationship was deferred/skipped and still carries the older fee.
money.atmosphere.app.updateConfig31 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputappUrlstringnoyesformat:uriNo description in lexicon yet.
inputwebhookUrlstringnoyesformat:uriNo description in lexicon yet.
inputwebhookPausedbooleannonononeNo description in lexicon yet.
inputfeeShareBpsintegernonominimum:0, maximum:10000No description in lexicon yet.
inputmodulesref:#modulesnonononeWritable module toggles.
inputsubscriptionPolicyref:#subscriptionPolicynonononeNo description in lexicon yet.
inputticketingref:#ticketingnonononeNo description in lexicon yet.
inputcheckoutref:#checkoutnonononeNo description in lexicon yet.
inputpaymentMethodsref:#paymentMethodsnonononeNo description in lexicon yet.
inputeventDeliveryref:#eventDeliverynonononeNo description in lexicon yet.
inputwebhookEventsarray<ref:#webhookEventSetting>nonomaxLength:128No description in lexicon yet.
inputfeeTiersarray<ref:money.atmosphere.app.defs#feeTier>nonomaxLength:20Full replacement of the app's variable-app-fee tiers (up to 20).
def:webhookEventSettingtypestring<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.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>yesnomaxLength:128ATM webhook event type, such as payment.completed.
def:webhookEventSettingenabledbooleanyesnononeNo description in lexicon yet.
def:modulespaymentsbooleannonononeNo description in lexicon yet.
def:modulesproductsbooleannonononeNo description in lexicon yet.
def:modulessubscriptionsbooleannonononeNo description in lexicon yet.
def:modulespledgesbooleannonononeNo description in lexicon yet.
def:modulesticketsbooleannonononeNo description in lexicon yet.
def:subscriptionPolicyactiveLimitstring<multiple | one-per-payer-recipient>nonomaxLength:64No description in lexicon yet.
def:ticketingqrPassesbooleannonononeNo description in lexicon yet.
def:ticketingwalletPassesbooleannonononeNo description in lexicon yet.
def:checkoutthemestring<auto | light | dark>nonomaxLength:16No description in lexicon yet.
def:paymentMethodsenabledarray<string<card | link | apple_pay | google_pay | us_bank_account | klarna>>nonomaxLength:12No description in lexicon yet.
def:paymentMethodsdisabledarray<string<card | link | apple_pay | google_pay | us_bank_account | klarna>>nonomaxLength:12No description in lexicon yet.
def:paymentMethodsdynamicPaymentMethodsbooleannonononeNo description in lexicon yet.
def:eventDeliverytransportstring<none | webhook | xrpc>nonomaxLength:16No description in lexicon yet.
def:eventDeliveryxrpcReceiverref:#eventDeliveryXrpcReceivernonononeNo description in lexicon yet.
def:eventDeliveryXrpcReceiverserviceRefstringnonomaxLength:300No description in lexicon yet.
def:eventDeliveryXrpcReceivermethodstring<money.atmosphere.event.receiveEvent>nonomaxLength:300, format:nsidCanonical receiver method for new configuration writes.
money.atmosphere.app.upsertFeeTier2 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>yesnomaxLength:8No description in lexicon yet.
inputfeeTierref:money.atmosphere.app.defs#feeTieryesnononeNo description in lexicon yet.
money.atmosphere.authCatalog1 fields
LocationFieldTypeRequiredNullableLimitsDescription
permissionrepo[0]create | update | delete<money.atmosphere.membership.program | money.atmosphere.membership.tier | money.atmosphere.product | money.atmosphere.price | money.atmosphere.discount | money.atmosphere.discountCode>yesnononeCreate, update, and archive Atmosphere Money catalog records.
money.atmosphere.authProfile1 fields
LocationFieldTypeRequiredNullableLimitsDescription
permissionrepo[0]create | update<money.atmosphere.actor.profile>yesnononeCreate and update your Atmosphere Money payment profile.
money.atmosphere.billing.requestKofiMigrationBatch46 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputcreatorDidstringyesnoformat:didNo description in lexicon yet.
inputcsvTextstringyesnomaxLength:1000000Raw Ko-fi membership CSV.
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputimportSourcestring<kofi | substack>nonomaxLength:64Source platform: Ko-fi (default) or Substack.
inputdryRunbooleannonononePreview only: parse the CSV and return summary/tiers/warnings WITHOUT persisting a review batch (batch and dashboardUrl are omitted from the response).
inputrequestedCutoverAtstringnonoformat:datetimeNo description in lexicon yet.
inputmetadataunknownnonononeApp-private migration context such as app-local creator/list ids.
outputdryRunbooleannonononeTrue when the request was a dry run: no batch was persisted, so batch and dashboardUrl are omitted.
outputbatchref:#batchnonononeNo description in lexicon yet.
outputdashboardUrlstringnonoformat:uriNo description in lexicon yet.
outputsummaryref:#previewSummaryyesnononeNo description in lexicon yet.
outputtiersarray<ref:#tierSummary>yesnononeNo description in lexicon yet.
outputwarningsarray<string>yesnononeNo description in lexicon yet.
def:currencyTotalcurrencystringyesnominLength:3, maxLength:3Lowercase currency identifier this sum is denominated in.
def:currencyTotalamountMinorintegeryesnominimum:0Sum in the currency's smallest unit.
def:previewSummarysourcestring<kofi | substack>yesnomaxLength:32No description in lexicon yet.
def:previewSummarytotalRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummaryvalidRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummaryactiveRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummarystripeRowsintegernonominimum:0Rows whose source payment method was Stripe.
def:previewSummarypaypalRowsintegernonominimum:0Rows whose source payment method was PayPal.
def:previewSummaryunknownPaymentMethodRowsintegernonominimum:0No description in lexicon yet.
def:previewSummarymissingEmailRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummaryduplicateEmailRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummarytotalAmountintegernonominimum:0Sum in minor units.
def:previewSummarytotalsarray<ref:#currencyTotal>nonomaxLength:20Per-currency sums in minor units over rows with an attributed currency.
def:previewSummarycurrenciesarray<string>yesnomaxLength:20No description in lexicon yet.
def:previewSummarytierCountintegeryesnominimum:0No description in lexicon yet.
def:tierSummarytierNamestringyesnomaxLength:512, maxGraphemes:120No description in lexicon yet.
def:tierSummaryrowCountintegeryesnominimum:0No description in lexicon yet.
def:tierSummaryactiveCountintegeryesnominimum:0No description in lexicon yet.
def:tierSummarystripeCountintegernonominimum:0Rows in this tier whose source payment method was Stripe.
def:tierSummarypaypalCountintegernonominimum:0Rows in this tier whose source payment method was PayPal.
def:tierSummaryunknownPaymentMethodCountintegernonominimum:0No description in lexicon yet.
def:tierSummarytotalAmountintegernonominimum:0Sum in minor units.
def:tierSummarytotalsarray<ref:#currencyTotal>nonomaxLength:20Per-currency sums in minor units over rows with an attributed currency.
def:tierSummarycurrenciesarray<string>yesnomaxLength:20No description in lexicon yet.
def:batchidstringyesnomaxLength:128No description in lexicon yet.
def:batchstatusstringyesnomaxLength:64No description in lexicon yet.
def:batchenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
def:batchimportSourcestring<kofi | substack>yesnomaxLength:64No description in lexicon yet.
def:batchmigrationPathstringyesnomaxLength:128No description in lexicon yet.
def:batchcreatorDidstringyesnoformat:didNo description in lexicon yet.
def:batchdestinationAccountIdstringnonomaxLength:128The creator's ATM connected-account id — the PAN-copy destination the app surfaces to the creator.
def:batchappDidstringnonoformat:didNo description in lexicon yet.
def:batchrequestedCutoverAtstringnonoformat:datetimeNo description in lexicon yet.
money.atmosphere.billing.requestMigrationBatch55 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputcreatorDidstringyesnoformat:didNo description in lexicon yet.
inputrowsarray<ref:#subscriberRow>yesnomaxLength:50000Normalized subscriber rows the app produced from its own export.
inputsourcestring<kofi | substack>nonomaxLength:64Provenance label for the export (Ko-fi, Substack, …).
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputdryRunbooleannonononePreview only: return summary/tiers/warnings WITHOUT persisting a review batch (batch and dashboardUrl are omitted from the response).
inputrequestedCutoverAtstringnonoformat:datetimeNo description in lexicon yet.
inputmetadataunknownnonononeApp-private migration context such as app-local creator/list ids.
outputdryRunbooleannonononeTrue when the request was a dry run: no batch was persisted, so batch and dashboardUrl are omitted.
outputbatchref:#batchnonononeNo description in lexicon yet.
outputdashboardUrlstringnonoformat:uriNo description in lexicon yet.
outputsummaryref:#previewSummaryyesnononeNo description in lexicon yet.
outputtiersarray<ref:#tierSummary>yesnononeNo description in lexicon yet.
outputwarningsarray<string>yesnononeNo description in lexicon yet.
def:currencyTotalcurrencystringyesnominLength:3, maxLength:3Lowercase currency identifier this sum is denominated in.
def:currencyTotalamountMinorintegeryesnominimum:0Sum in the currency's smallest unit.
def:previewSummarysourcestring<kofi | substack>yesnomaxLength:32No description in lexicon yet.
def:previewSummarytotalRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummaryvalidRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummaryactiveRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummarystripeRowsintegernonominimum:0Rows whose source payment method was Stripe.
def:previewSummarypaypalRowsintegernonominimum:0Rows whose source payment method was PayPal.
def:previewSummaryunknownPaymentMethodRowsintegernonominimum:0No description in lexicon yet.
def:previewSummarymissingEmailRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummaryduplicateEmailRowsintegeryesnominimum:0No description in lexicon yet.
def:previewSummarytotalAmountintegernonominimum:0Sum in minor units.
def:previewSummarytotalsarray<ref:#currencyTotal>nonomaxLength:20Per-currency sums in minor units over rows with an attributed currency.
def:previewSummarycurrenciesarray<string>yesnomaxLength:20No description in lexicon yet.
def:previewSummarytierCountintegeryesnominimum:0No description in lexicon yet.
def:tierSummarytierNamestringyesnomaxLength:512, maxGraphemes:120No description in lexicon yet.
def:tierSummaryrowCountintegeryesnominimum:0No description in lexicon yet.
def:tierSummaryactiveCountintegeryesnominimum:0No description in lexicon yet.
def:tierSummarystripeCountintegernonominimum:0Rows in this tier whose source payment method was Stripe.
def:tierSummarypaypalCountintegernonominimum:0Rows in this tier whose source payment method was PayPal.
def:tierSummaryunknownPaymentMethodCountintegernonominimum:0No description in lexicon yet.
def:tierSummarytotalAmountintegernonominimum:0Sum in minor units.
def:tierSummarytotalsarray<ref:#currencyTotal>nonomaxLength:20Per-currency sums in minor units over rows with an attributed currency.
def:tierSummarycurrenciesarray<string>yesnomaxLength:20No description in lexicon yet.
def:subscriberRowemailHashstringnonomaxLength:128Lowercase-hex SHA-256 of the trimmed, lowercased subscriber email — the join key to the Stripe PAN-copy customer mapping at cutover.
def:subscriberRowmaskedEmailstringnonomaxLength:320, maxGraphemes:160Display-only masked email such as ad*@example.com.
def:subscriberRowdisplayNamestringnonomaxLength:512, maxGraphemes:120No description in lexicon yet.
def:subscriberRowstatusstringnonomaxLength:128Source-native status text, for display/audit only.
def:subscriberRowactivebooleanyesnononeWhether the subscription is currently active.
def:subscriberRowpaymentMethodstring<stripe | paypal | unknown>yesnomaxLength:32Only stripe rows are migratable; paypal/unknown are surfaced for creator review.
def:subscriberRowtierNamestringnonomaxLength:512, maxGraphemes:120No description in lexicon yet.
def:subscriberRowamountintegernonominimum:0Per-subscriber amount in the currency minor unit.
def:subscriberRowcurrencystringnonominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code.
def:batchidstringyesnomaxLength:128No description in lexicon yet.
def:batchstatusstringyesnomaxLength:64No description in lexicon yet.
def:batchenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
def:batchimportSourcestring<kofi | substack>yesnomaxLength:64No description in lexicon yet.
def:batchmigrationPathstringyesnomaxLength:128No description in lexicon yet.
def:batchcreatorDidstringyesnoformat:didNo description in lexicon yet.
def:batchdestinationAccountIdstringnonomaxLength:128The creator's ATM connected-account id — the PAN-copy destination the app surfaces to the creator.
def:batchappDidstringnonoformat:didNo description in lexicon yet.
def:batchrequestedCutoverAtstringnonoformat:datetimeNo description in lexicon yet.
money.atmosphere.calendar.getEvent6 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsuristringyesnomaxLength:2048, format:at-uriNo description in lexicon yet.
outputeventref:#indexedEventyesyesnoneNo description in lexicon yet.
def:indexedEventuristringyesnomaxLength:2048, format:at-uriNo description in lexicon yet.
def:indexedEventcidstringyesnoformat:cidNo description in lexicon yet.
def:indexedEventvalueunknownyesnononeThe public community.lexicon.calendar.event record body as indexed from the repository stream.
def:indexedEventindexedAtstringyesnoformat:datetimeWhen this event version was indexed by the AppView.
money.atmosphere.calendar.listRsvps17 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramseventUristringyesnomaxLength:2048, format:at-uriNo description in lexicon yet.
paramsstatusstring<going | interested | notgoing>nonomaxLength:64No description in lexicon yet.
paramsorderstring<oldest | recent>nonomaxLength:16Result order.
paramslimitintegernonominimum:1, maximum:200No description in lexicon yet.
paramscursorstringnonomaxLength:4096Opaque cursor from the previous page.
outputrsvpsarray<ref:#indexedRsvp>yesnomaxLength:200No description in lexicon yet.
outputtotalintegeryesnominimum:0Unique attendees whose latest public RSVP state matches the requested status.
outputrevisionstringyesnomaxLength:128Opaque event-scoped projection revision shared by every page of one stable read.
outputcursorstringnonomaxLength:4096Opaque cursor to pass back for the next page.
def:indexedRsvpuristringyesnomaxLength:2048, format:at-uriNo description in lexicon yet.
def:indexedRsvpcidstringyesnoformat:cidNo description in lexicon yet.
def:indexedRsvpdidstringyesnoformat:didNo description in lexicon yet.
def:indexedRsvpstatusstring<community.lexicon.calendar.rsvp#going | community.lexicon.calendar.rsvp#interested | community.lexicon.calendar.rsvp#notgoing>yesnomaxLength:192RSVP status ref.
def:indexedRsvpsubjectUristringyesnomaxLength:2048, format:at-uriNo description in lexicon yet.
def:indexedRsvpsubjectCidstringyesnoformat:cidNo description in lexicon yet.
def:indexedRsvpcreatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:indexedRsvpindexedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.calendar.listUpcomingEvents8 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsorganizerstringyesnoformat:didNo description in lexicon yet.
paramslimitintegernonominimum:1, maximum:50No description in lexicon yet.
paramscursorstringnonomaxLength:4096No description in lexicon yet.
outputeventsarray<ref:#event>yesnomaxLength:50No description in lexicon yet.
outputcursorstringnonomaxLength:4096No description in lexicon yet.
def:eventuristringyesnomaxLength:2048, format:at-uriNo description in lexicon yet.
def:eventtitlestringyesnomaxLength:1200No description in lexicon yet.
def:eventstartsAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.catalog.configureInventory22 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputidempotencyKeystringyesnominLength:1, maxLength:200Required ATM app-operation key matching ^[A-Za-z0-9._:/-]+$.
inputcreatorDidstringyesnoformat:didNo description in lexicon yet.
inputproductref:com.atproto.repo.strongRefyesnononeExact current root product strongRef.
inputvariantref:com.atproto.repo.strongRefnonononeOptional exact current variant strongRef whose variantOf must bind product's exact URI and CID.
inputenvironmentstring<test | live>yesnomaxLength:8No description in lexicon yet.
inputexpectedRevisionintegeryesnominimum:0, maximum:9007199254740991Compare-and-swap fence.
inputpolicystring<finite | unlimited>yesnomaxLength:16No description in lexicon yet.
inputquantityTotalintegernonominimum:0, maximum:1000000Required for finite policy and omitted for unlimited policy.
inputcreatorAssertionJwtstringnonominLength:1, maxLength:8192Fresh single-use creator service-auth assertion with aud = ATM broker and lxm = money.atmosphere.catalog.configureInventory.
outputinventoryref:#inventoryViewyesnononeNo description in lexicon yet.
def:inventoryViewcreatorDidstringyesnoformat:didNo description in lexicon yet.
def:inventoryViewproductUristringyesnoformat:at-uriNo description in lexicon yet.
def:inventoryViewvariantUristringnonoformat:at-uriNo description in lexicon yet.
def:inventoryViewenvironmentstring<test | live>yesnomaxLength:8No description in lexicon yet.
def:inventoryViewcheckoutModestring<hosted | routed>yesnomaxLength:16Checkout authority for this inventory row.
def:inventoryViewpolicystring<finite | unlimited>yesnomaxLength:16No description in lexicon yet.
def:inventoryViewstatusstring<active | archived>yesnomaxLength:16No description in lexicon yet.
def:inventoryViewrevisionintegeryesnominimum:1, maximum:9007199254740991No description in lexicon yet.
def:inventoryViewquantityTotalintegeryesyesminimum:0, maximum:1000000No description in lexicon yet.
def:inventoryViewquantityReservedintegeryesyesminimum:0, maximum:1000000No description in lexicon yet.
def:inventoryViewquantitySoldintegeryesyesminimum:0, maximum:1000000No description in lexicon yet.
def:inventoryViewavailableintegeryesyesminimum:0, maximum:1000000Units available to reserve now.
money.atmosphere.catalog.createProduct15 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputtitlestringyesnominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
inputskustringnonomaxLength:64No description in lexicon yet.
inputkindstring<physical | digital | membership | service | ticket | support | other>yesnomaxLength:32Product kind to assign.
inputdescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
inputpriceref:money.atmosphere.catalog.defs#priceInputnonononeNo description in lexicon yet.
inputinventoryref:money.atmosphere.catalog.defs#inventoryInputnonononeNo description in lexicon yet.
inputvariantOfref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
inputappProductRefref:money.atmosphere.catalog.defs#appProductRefnonononeNo description in lexicon yet.
inputfulfillmentUrlstringnonoformat:uriNo description in lexicon yet.
inputappLabelstringnonomaxLength:800, maxGraphemes:80No description in lexicon yet.
inputappUrlstringnonoformat:uriNo description in lexicon yet.
inputappIconUrlstringnonoformat:uriNo description in lexicon yet.
outputproductref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
outputpriceref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
money.atmosphere.catalog.defs22 fields
LocationFieldTypeRequiredNullableLimitsDescription
def:appProductReftypestring<shop | commission | membership | membership-tier | ticket | custom>nonomaxLength:32App-local sellable kind used to select recipient approval scope.
def:appProductRefidstringnonomaxLength:512No description in lexicon yet.
def:appProductRefuristringnonoformat:at-uriNo description in lexicon yet.
def:appProductRefcidstringnonoformat:cidNo description in lexicon yet.
def:priceInputcurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:priceInputunitAmountintegernonominimum:0Amount in the smallest currency unit.
def:priceInputtypestring<one-time | recurring>yesnomaxLength:16No description in lexicon yet.
def:priceInputrecurringref:#recurringInputnonononeNo description in lexicon yet.
def:priceInputcustomUnitAmountref:#customUnitAmountInputnonononeNo description in lexicon yet.
def:priceInputbillingSchemestring<per-unit | tiered>nonomaxLength:32No description in lexicon yet.
def:priceInputtiersModestring<graduated | volume>nonomaxLength:32No description in lexicon yet.
def:priceInputtiersarray<ref:#tierInput>nonomaxLength:100No description in lexicon yet.
def:recurringInputintervalstring<day | week | month | year>yesnomaxLength:16No description in lexicon yet.
def:recurringInputintervalCountintegernonominimum:1, maximum:1095Number of interval units between billings.
def:customUnitAmountInputenabledbooleanyesnononeNo description in lexicon yet.
def:customUnitAmountInputminimumintegernonominimum:1No description in lexicon yet.
def:customUnitAmountInputmaximumintegernonominimum:1No description in lexicon yet.
def:tierInputupTointegernonominimum:1Inclusive upper quantity bound for this tier.
def:tierInputunitAmountintegernonominimum:0No description in lexicon yet.
def:tierInputflatAmountintegernonominimum:0No description in lexicon yet.
def:inventoryInputtrackInventorybooleanyesnononeNo description in lexicon yet.
def:inventoryInputquantityTotalintegernonominimum:0, maximum:1000000No description in lexicon yet.
money.atmosphere.catalog.getInventory16 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsproductUristringyesnoformat:at-uriCurrent root product AT-URI.
paramsvariantUristringnonoformat:at-uriOptional current variant AT-URI whose variantOf must bind productUri's exact current URI and CID.
paramsenvironmentstring<test | live>yesnomaxLength:8No description in lexicon yet.
outputinventoryref:#inventoryViewyesnononeNo description in lexicon yet.
def:inventoryViewcreatorDidstringyesnoformat:didNo description in lexicon yet.
def:inventoryViewproductUristringyesnoformat:at-uriNo description in lexicon yet.
def:inventoryViewvariantUristringnonoformat:at-uriNo description in lexicon yet.
def:inventoryViewenvironmentstring<test | live>yesnomaxLength:8No description in lexicon yet.
def:inventoryViewcheckoutModestring<hosted | routed>yesnomaxLength:16Checkout authority for this inventory row.
def:inventoryViewpolicystring<finite | unlimited>yesnomaxLength:16No description in lexicon yet.
def:inventoryViewstatusstring<active | archived>yesnomaxLength:16No description in lexicon yet.
def:inventoryViewrevisionintegeryesnominimum:1, maximum:9007199254740991No description in lexicon yet.
def:inventoryViewquantityTotalintegeryesyesminimum:0, maximum:1000000No description in lexicon yet.
def:inventoryViewquantityReservedintegeryesyesminimum:0, maximum:1000000No description in lexicon yet.
def:inventoryViewquantitySoldintegeryesyesminimum:0, maximum:1000000No description in lexicon yet.
def:inventoryViewavailableintegeryesyesminimum:0, maximum:1000000Units available to reserve now.
money.atmosphere.catalog.getProduct35 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsuristringyesnoformat:at-uriNo description in lexicon yet.
outputproductref:#catalogProductyesyesnoneNo description in lexicon yet.
def:catalogPriceuristringyesnoformat:at-uriNo description in lexicon yet.
def:catalogPricecidstringyesnoformat:cidNo description in lexicon yet.
def:catalogPricelookupKeystringnonomaxLength:200No description in lexicon yet.
def:catalogPricenicknamestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
def:catalogPricecurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:catalogPriceunitAmountintegernonominimum:0Amount in the smallest currency unit.
def:catalogPricecustomUnitAmountref:#catalogPriceCustomUnitAmountnonononeNo description in lexicon yet.
def:catalogPricebillingSchemestring<per-unit | tiered>nonomaxLength:32No description in lexicon yet.
def:catalogPricetiersModestring<graduated | volume>nonomaxLength:32No description in lexicon yet.
def:catalogPricetiersarray<ref:money.atmosphere.price#tier>nonomaxLength:100No description in lexicon yet.
def:catalogPricetypestring<one-time | recurring>yesnomaxLength:16No description in lexicon yet.
def:catalogPricerecurringref:#catalogPriceRecurringnonononeNo description in lexicon yet.
def:catalogPricearchivedbooleanyesnononeNo description in lexicon yet.
def:catalogPricecreatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:catalogProducturistringyesnoformat:at-uriNo description in lexicon yet.
def:catalogProductcidstringyesnoformat:cidNo description in lexicon yet.
def:catalogProducttitlestringyesnominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
def:catalogProductskustringnonomaxLength:64No description in lexicon yet.
def:catalogProductdefaultPriceref:#catalogPricenonononeNo description in lexicon yet.
def:catalogProductkindstring<physical | digital | commission | membership | service | ticket | support | other>yesnomaxLength:32Open product classification copied from the indexed public record.
def:catalogProductdescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
def:catalogProductimageUrlstringnonoformat:uriNo description in lexicon yet.
def:catalogProductvariantOfref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:catalogProductarchivedbooleanyesnononeNo description in lexicon yet.
def:catalogProductarchivedAtstringnonoformat:datetimeNo description in lexicon yet.
def:catalogProductcreatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:catalogProductindexedAtstringyesnoformat:datetimeWhen the AppView indexed this product.
def:catalogProductsalesCountintegernonominimum:0No description in lexicon yet.
def:catalogPriceCustomUnitAmountenabledbooleanyesnononeNo description in lexicon yet.
def:catalogPriceCustomUnitAmountminimumintegernonominimum:1No description in lexicon yet.
def:catalogPriceCustomUnitAmountmaximumintegernonominimum:1No description in lexicon yet.
def:catalogPriceRecurringintervalstring<day | week | month | year>yesnomaxLength:16No description in lexicon yet.
def:catalogPriceRecurringintervalCountintegernonominimum:1, maximum:1095Absent means 1 (matching Stripe Price.recurring.interval_count).
money.atmosphere.catalog.listDiscountCodes24 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramscreatorsarray<string>yesnominLength:1, maxLength:50No description in lexicon yet.
paramsincludeDisabledbooleannonononeNo description in lexicon yet.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputcodesarray<ref:#catalogDiscountCode>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:catalogDiscountCodeuristringyesnoformat:at-uriNo description in lexicon yet.
def:catalogDiscountCodecidstringyesnoformat:cidNo description in lexicon yet.
def:catalogDiscountCodecreatorDidstringyesnoformat:didThe repo DID that authored this discount-code record (the creator).
def:catalogDiscountCodecodestringyesnomaxLength:64No description in lexicon yet.
def:catalogDiscountCodenamestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
def:catalogDiscountCodediscountUristringnonoformat:at-uriNo description in lexicon yet.
def:catalogDiscountCodediscountCidstringnonoformat:cidNo description in lexicon yet.
def:catalogDiscountCodepercentOffBpsintegernonominimum:1, maximum:10000No description in lexicon yet.
def:catalogDiscountCodeamountOffref:#catalogDiscountAmountOffnonononeNo description in lexicon yet.
def:catalogDiscountCodedurationstring<once | forever | repeating>nonomaxLength:16No description in lexicon yet.
def:catalogDiscountCodedurationInMonthsintegernonominimum:1, maximum:36No description in lexicon yet.
def:catalogDiscountCodemaxRedemptionsintegernonominimum:1Public configured redemption cap from the record.
def:catalogDiscountCoderedeemBystringnonoformat:datetimeNo description in lexicon yet.
def:catalogDiscountCodedisabledbooleanyesnononeWhether the offer is disabled (inverse of the indexed active state).
def:catalogDiscountCodecreatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:catalogDiscountCodeindexedAtstringnonoformat:datetimeWhen the AppView indexed this discount code.
def:catalogDiscountAmountOffcurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:catalogDiscountAmountOffunitAmountintegeryesnominimum:1No description in lexicon yet.
money.atmosphere.catalog.listPrices27 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsofferUristringyesnoformat:at-uriNo description in lexicon yet.
paramsincludeArchivedbooleannonononeNo description in lexicon yet.
paramstypestring<one-time | recurring>nonomaxLength:16No description in lexicon yet.
paramscurrencystringnonominLength:3, maxLength:3No description in lexicon yet.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputpricesarray<ref:#catalogPrice>yesnomaxLength:100No description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:catalogPriceuristringyesnoformat:at-uriNo description in lexicon yet.
def:catalogPricecidstringyesnoformat:cidNo description in lexicon yet.
def:catalogPricelookupKeystringnonomaxLength:200No description in lexicon yet.
def:catalogPricenicknamestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
def:catalogPricecurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:catalogPriceunitAmountintegernonominimum:0Amount in the smallest currency unit.
def:catalogPricecustomUnitAmountref:#catalogPriceCustomUnitAmountnonononeNo description in lexicon yet.
def:catalogPricebillingSchemestring<per-unit | tiered>nonomaxLength:32No description in lexicon yet.
def:catalogPricetiersModestring<graduated | volume>nonomaxLength:32No description in lexicon yet.
def:catalogPricetiersarray<ref:money.atmosphere.price#tier>nonomaxLength:100No description in lexicon yet.
def:catalogPricetypestring<one-time | recurring>yesnomaxLength:16No description in lexicon yet.
def:catalogPricerecurringref:#catalogPriceRecurringnonononeNo description in lexicon yet.
def:catalogPricearchivedbooleanyesnononeNo description in lexicon yet.
def:catalogPricecreatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:catalogPriceCustomUnitAmountenabledbooleanyesnononeNo description in lexicon yet.
def:catalogPriceCustomUnitAmountminimumintegernonominimum:1No description in lexicon yet.
def:catalogPriceCustomUnitAmountmaximumintegernonominimum:1No description in lexicon yet.
def:catalogPriceRecurringintervalstring<day | week | month | year>yesnomaxLength:16No description in lexicon yet.
def:catalogPriceRecurringintervalCountintegernonominimum:1, maximum:1095Absent means 1 (matching Stripe Price.recurring.interval_count).
money.atmosphere.catalog.listProducts42 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramscreatorstringyesnoformat:at-identifierDID or handle of the creator.
paramsincludeVariantsbooleannonononeNo description in lexicon yet.
paramsincludeArchivedbooleannonononeNo description in lexicon yet.
paramskindstring<physical | digital | commission | membership | service | ticket | support | other>nonomaxLength:32Optional exact product-kind filter.
paramswithSalesCountsbooleannonononeNo description in lexicon yet.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputproductsarray<ref:#catalogProduct>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:catalogPriceuristringyesnoformat:at-uriNo description in lexicon yet.
def:catalogPricecidstringyesnoformat:cidNo description in lexicon yet.
def:catalogPricelookupKeystringnonomaxLength:200No description in lexicon yet.
def:catalogPricenicknamestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
def:catalogPricecurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:catalogPriceunitAmountintegernonominimum:0Amount in the smallest currency unit.
def:catalogPricecustomUnitAmountref:#catalogPriceCustomUnitAmountnonononeNo description in lexicon yet.
def:catalogPricebillingSchemestring<per-unit | tiered>nonomaxLength:32No description in lexicon yet.
def:catalogPricetiersModestring<graduated | volume>nonomaxLength:32No description in lexicon yet.
def:catalogPricetiersarray<ref:money.atmosphere.price#tier>nonomaxLength:100No description in lexicon yet.
def:catalogPricetypestring<one-time | recurring>yesnomaxLength:16No description in lexicon yet.
def:catalogPricerecurringref:#catalogPriceRecurringnonononeNo description in lexicon yet.
def:catalogPricearchivedbooleanyesnononeNo description in lexicon yet.
def:catalogPricecreatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:catalogProducturistringyesnoformat:at-uriNo description in lexicon yet.
def:catalogProductcidstringyesnoformat:cidNo description in lexicon yet.
def:catalogProducttitlestringyesnominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
def:catalogProductskustringnonomaxLength:64No description in lexicon yet.
def:catalogProductdefaultPriceref:#catalogPricenonononeNo description in lexicon yet.
def:catalogProductkindstring<physical | digital | commission | membership | service | ticket | support | other>yesnomaxLength:32Open product classification copied from the indexed public record.
def:catalogProductdescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
def:catalogProductimageUrlstringnonoformat:uriNo description in lexicon yet.
def:catalogProductvariantOfref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:catalogProductarchivedbooleanyesnononeNo description in lexicon yet.
def:catalogProductarchivedAtstringnonoformat:datetimeNo description in lexicon yet.
def:catalogProductcreatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:catalogProductindexedAtstringyesnoformat:datetimeWhen the AppView indexed this product.
def:catalogProductsalesCountintegernonominimum:0No description in lexicon yet.
def:catalogPriceCustomUnitAmountenabledbooleanyesnononeNo description in lexicon yet.
def:catalogPriceCustomUnitAmountminimumintegernonominimum:1No description in lexicon yet.
def:catalogPriceCustomUnitAmountmaximumintegernonominimum:1No description in lexicon yet.
def:catalogPriceRecurringintervalstring<day | week | month | year>yesnomaxLength:16No description in lexicon yet.
def:catalogPriceRecurringintervalCountintegernonominimum:1, maximum:1095Absent means 1 (matching Stripe Price.recurring.interval_count).
money.atmosphere.catalog.replacePrice7 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputproductref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
inputpriceref:money.atmosphere.catalog.defs#priceInputyesnononeNo description in lexicon yet.
inputidempotencyKeystringyesnominLength:1, maxLength:200Stable identifier for one logical replacement.
outputproductref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
outputpriceref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
outputreplayedbooleanyesnononeTrue when this response adopted the exact result of an earlier request with the same idempotencyKey.
money.atmosphere.catalog.updateProduct18 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputproductref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
inputtitlestringnonominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
inputskustringnonomaxLength:64No description in lexicon yet.
inputkindstringnonomaxLength:32Replacement product kind.
inputdescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
inputpriceref:money.atmosphere.catalog.defs#priceInputnonononeDeprecated and rejected with PriceMutationUnavailable.
inputinventoryref:money.atmosphere.catalog.defs#inventoryInputnonononeDeprecated and rejected with InventoryMutationMoved.
inputarchivedbooleannonononeSet true to archive the product (removed from new-sale surfaces, still resolvable), false to unarchive.
inputappProductRefref:money.atmosphere.catalog.defs#appProductRefnonononeDeprecated and rejected with LinkMutationMoved.
inputfulfillmentUrlstringnonoformat:uriDeprecated and rejected with LinkMutationMoved.
inputappLabelstringnonomaxLength:800, maxGraphemes:80Deprecated and rejected with LinkMutationMoved.
inputappUrlstringnonoformat:uriDeprecated and rejected with LinkMutationMoved.
inputappIconUrlstringnonoformat:uriDeprecated and rejected with LinkMutationMoved.
inputlinkStatusstring<active | archived>nonomaxLength:32Deprecated and rejected with LinkMutationMoved.
inputlinkSourceUpdatedAtstringnonomaxLength:64, format:datetimeDeprecated and rejected with LinkMutationMoved.
outputproductref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
outputpriceref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
money.atmosphere.discount16 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordnamestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
recordpercentOffBpsintegernonominimum:1, maximum:10000Percentage discount in basis points.
recordamountOffref:#amountOffnonononeNo description in lexicon yet.
recorddurationstring<once | forever | repeating>nonomaxLength:16Stripe-compatible discount duration.
recorddurationInMonthsintegernonominimum:1Required when duration is repeating.
recordappliesToref:#appliesTononononeNo description in lexicon yet.
recordmaxRedemptionsintegernonominimum:1No description in lexicon yet.
recordredeemBystringnonoformat:datetimeNo description in lexicon yet.
recorddisabledbooleannonononeNo description in lexicon yet.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
recordupdatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:amountOffcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code.
def:amountOffunitAmountintegeryesnominimum:1Amount off in the smallest currency unit.
def:appliesToproductUrisarray<string>nonomaxLength:200ATM product URIs this discount can apply to.
def:appliesTopriceUrisarray<string>nonomaxLength:200ATM price URIs this discount can apply to.
def:appliesToticketTypeUrisarray<string>nonomaxLength:200Atmosphere Tickets ticket type URIs this discount can apply to.
money.atmosphere.discountCode13 fields
LocationFieldTypeRequiredNullableLimitsDescription
recorddiscountref:com.atproto.repo.strongRefyesnononeStrongRef to the money.atmosphere.discount this code redeems.
recordcodestringyesnomaxLength:64Customer-facing code.
recordnamestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
recordrestrictionsref:#restrictionsnonononeNo description in lexicon yet.
recordmaxRedemptionsintegernonominimum:1No description in lexicon yet.
recordredeemBystringnonoformat:datetimeNo description in lexicon yet.
recorddisabledbooleannonononeNo description in lexicon yet.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
recordupdatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:restrictionsfirstTimeTransactionbooleannonononeStripe-compatible first-time transaction restriction.
def:restrictionsminimumAmountref:#restrictionsMinimumAmountnonononeNo description in lexicon yet.
def:restrictionsMinimumAmountcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code.
def:restrictionsMinimumAmountunitAmountintegeryesnominimum:1Minimum payment amount in the smallest currency unit.
money.atmosphere.event.defs362 fields
LocationFieldTypeRequiredNullableLimitsDescription
def:commerceOrderFulfillmentmodestring<app-managed | atm-managed>yesnomaxLength:32No description in lexicon yet.
def:commerceOrderFulfillmentownerAppDidstringyesnoformat:didNo description in lexicon yet.
def:commerceOrderFulfillmentworkflowstring<automatic | manual>yesnomaxLength:16No description in lexicon yet.
def:commerceOrderFulfillmentmanagementUrlstringnonomaxLength:2048, format:uriNo description in lexicon yet.
def:commerceOrderRoutingversionintegeryesnominimum:1, maximum:1No description in lexicon yet.
def:commerceOrderRoutingkindstring<shop | commission>yesnomaxLength:16No description in lexicon yet.
def:commerceOrderRoutingclientOrderIdstringyesnomaxLength:200No description in lexicon yet.
def:commerceOrderRoutingsalesChannelAppDidstringyesnoformat:didNo description in lexicon yet.
def:commerceOrderRoutingfulfillmentref:#commerceOrderFulfillmentyesnononeNo description in lexicon yet.
def:commerceOrderRoutinginventoryAuthoritystring<app | atm>yesnomaxLength:8No description in lexicon yet.
def:commerceOrderRoutinginventoryPolicystring<finite | unlimited>yesnomaxLength:16No description in lexicon yet.
def:commerceOrderidstringyesnomaxLength:128No description in lexicon yet.
def:commerceOrderoriginatorDidstringyesnoformat:didOriginating app identity, equal to routing.salesChannelAppDid for this payment.
def:commerceOrderrevisionintegeryesnominimum:1, maximum:9007199254740991No description in lexicon yet.
def:commerceOrderroutingref:#commerceOrderRoutingyesnononeNo description in lexicon yet.
def:commerceOrderfinancialStatusstring<not-required | pending | paid | partially-refunded | refunded | disputed | chargeback | failed | canceled>yesnomaxLength:32No description in lexicon yet.
def:commerceOrderfulfillmentStatusstring<unfulfilled | ready | on-hold | processing | partially-fulfilled | fulfilled | failed | canceled>yesnomaxLength:32No description in lexicon yet.
def:commerceOrderfulfillmentStateCausestring<processor-review | payment-failed | payment-disputed | payment-refunded | payment-canceled | payment-chargeback | inventory-capacity-conflict | app-update | recipient-update>yesyesmaxLength:32Authority that most recently authored the fulfillment state.
def:paymentidstringyesnomaxLength:256No description in lexicon yet.
def:paymentoriginatorDidstringnonoformat:didNo description in lexicon yet.
def:paymentpaymentTypestringnonomaxLength:64No description in lexicon yet.
def:paymentamountintegernonononeNo description in lexicon yet.
def:paymentcurrencystringnonominLength:3, maxLength:3No description in lexicon yet.
def:paymentstatusstringnonomaxLength:64No description in lexicon yet.
def:paymentpayerDidstringnonoformat:didFinal ATM-verified or claimed payer DID.
def:paymentrecipientDidstringnonoformat:didNo description in lexicon yet.
def:paymentmetadataunknownnonononeSanitized app-private display context.
def:paymentlistingref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:paymententitlementsarray<ref:com.atproto.repo.strongRef>nonononeNo description in lexicon yet.
def:paymentorderref:#commerceOrdernonononeCanonical revision-fenced order control block for this exact destination app and environment.
def:subscriptionChangeOfferprogramref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:subscriptionChangeOffertierref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:subscriptionChangeOfferproductref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:subscriptionChangeOfferpriceref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:subscriptionChangeOfferamountintegeryesnominimum:0Recurring amount in the smallest currency unit.
def:subscriptionChangeProjectionlifecycleGenerationintegeryesnominimum:1Monotonic generation of the processor lifecycle that authored this projection.
def:subscriptionChangeProjectionsidestring<source | target>yesnomaxLength:16No description in lexicon yet.
def:subscriptionChangeProjectionaccessAuthorizedbooleanyesnononeNo description in lexicon yet.
def:subscriptionChangeProjectionstatestring<converged | blocked | reconciling>yesnomaxLength:16No description in lexicon yet.
def:subscriptionChangeProjectionauthorityInvoiceIdstringyesnomaxLength:256Exact processor invoice whose observed lifecycle authorizes this projection.
def:subscriptionChangeidstringyesnomaxLength:128No description in lexicon yet.
def:subscriptionChangesubscriptionIdstringyesnomaxLength:256Durable ATM subscriptions.id relationship key.
def:subscriptionChangeenvironmentstring<live | test>yesnomaxLength:16ATM app environment for this durable relationship change.
def:subscriptionChangestatusstring<quoted | awaiting-confirmation | awaiting-payment | action-required | scheduled | paid-pending-apply | applied | failed | canceled | superseded | expired>yesnomaxLength:32No description in lexicon yet.
def:subscriptionChangedirectionstring<upgrade | downgrade | lateral>yesnomaxLength:16No description in lexicon yet.
def:subscriptionChangechangeRevisionintegeryesnominimum:1Monotonic revision of this change lifecycle.
def:subscriptionChangesubscriptionRevisionintegeryesnominimum:1Relationship revision the change targets, or the applied relationship revision once effective.
def:subscriptionChangefromref:#subscriptionChangeOfferyesnononeNo description in lexicon yet.
def:subscriptionChangetoref:#subscriptionChangeOfferyesnononeNo description in lexicon yet.
def:subscriptionChangeamountDueNowintegeryesnominimum:0No description in lexicon yet.
def:subscriptionChangecreditNowintegeryesnominimum:0No description in lexicon yet.
def:subscriptionChangenextRecurringAmountintegeryesnominimum:0No description in lexicon yet.
def:subscriptionChangecurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:subscriptionChangeeffectiveAtstringyesnoformat:datetimeNo description in lexicon yet.
def:subscriptionChangenextChargeAtstringnonoformat:datetimeNo description in lexicon yet.
def:subscriptionChangeexpiresAtstringnonoformat:datetimeNo description in lexicon yet.
def:subscriptionChangeeffectiveInvoiceIdstringnonomaxLength:256Exact paid invoice that made this change effective.
def:subscriptionChangefailureCodestringnonomaxLength:64No description in lexicon yet.
def:subscriptionChangeprojectionref:#subscriptionChangeProjectionnonononeNo description in lexicon yet.
def:invoiceidstringyesnomaxLength:256No description in lexicon yet.
def:invoicesubscriptionIdstringnonomaxLength:256Durable ATM subscriptions.id this invoice belongs to.
def:invoiceprocessorSubscriptionIdstringnonomaxLength:256Processor subscription object id (e.g.
def:invoiceamountintegernonononeLegacy recurring plan amount in the smallest currency unit.
def:invoiceamountPaidintegernonominimum:0Actual amount settled for this invoice cycle, in the smallest currency unit.
def:invoicerecurringAmountintegernonominimum:0Recurring plan amount associated with the subscription for this cycle, in the smallest currency unit.
def:invoicecurrencystringnonominLength:3, maxLength:3No description in lexicon yet.
def:invoicepaidAtstringnonoformat:datetimeWhen the processor marked this invoice cycle paid.
def:invoicefirstInvoicebooleannonononeNo description in lexicon yet.
def:invoicechangeref:#subscriptionChangenonononeThe applied membership tier change when this exact paid invoice made it effective.
def:subscriptionidstringyesnomaxLength:256Durable ATM subscriptions.id.
def:subscriptionstatusstringnonomaxLength:64No description in lexicon yet.
def:subscriptionprocessorSubscriptionIdstringnonomaxLength:256Processor subscription object id (e.g.
def:subscriptionmetadataunknownnonononeSanitized app-private display context.
def:actorSummaryactorstringyesnomaxLength:256No description in lexicon yet.
def:actorSummarydidstringnonoformat:didNo description in lexicon yet.
def:ticketHoldidstringyesnomaxLength:300No description in lexicon yet.
def:ticketHoldeventIdstringnonomaxLength:300No description in lexicon yet.
def:ticketHoldpaymentIdstringnonomaxLength:300No description in lexicon yet.
def:ticketHoldstatusstringnonomaxLength:64No description in lexicon yet.
def:ticketHoldreasonstringnonomaxLength:512No description in lexicon yet.
def:ticketHoldamountintegernonominimum:0No description in lexicon yet.
def:ticketHoldcurrencystringnonominLength:3, maxLength:3No description in lexicon yet.
def:ticketHoldquantityTotalintegernonominimum:0No description in lexicon yet.
def:ticketHolditemsarray<ref:#ticketHoldItem>nonononeNo description in lexicon yet.
def:ticketHoldItemticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketHoldItemtitlestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
def:ticketHoldItemquantityintegernonononeNo description in lexicon yet.
def:ticketHoldItemunitAmountintegernonononeNo description in lexicon yet.
def:ticketHoldItemcurrencystringnonominLength:3, maxLength:3No description in lexicon yet.
def:restoredDisputeCycledisputeIdstringyesnomaxLength:256No description in lexicon yet.
def:restoredDisputeCycleinvoiceIdstringnonomaxLength:256No description in lexicon yet.
def:restoredDisputeCycledistributionsReinstatedbooleanyesnononeNo description in lexicon yet.
def:issuedTicketidstringyesnomaxLength:300No description in lexicon yet.
def:issuedTicketeventIdstringnonomaxLength:300No description in lexicon yet.
def:issuedTicketticketTypeIdstringnonomaxLength:300No description in lexicon yet.
def:issuedTicketpaymentIdstringnonomaxLength:300No description in lexicon yet.
def:issuedTicketclaimIdstringnonomaxLength:300No description in lexicon yet.
def:issuedTicketenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
def:issuedTicketownerDidstringnonoformat:didNo description in lexicon yet.
def:issuedTicketstatusstringnonomaxLength:64No description in lexicon yet.
def:issuedTicketticketNumberstringnonomaxLength:300No description in lexicon yet.
def:issuedTicketscanTokenstringnonomaxLength:4000No description in lexicon yet.
def:issuedTicketscanUrlstringnonomaxLength:2000, format:uriNo description in lexicon yet.
def:issuedTicketcreatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:issuedTicketupdatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:ticketIssuanceSummaryholdIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketIssuanceSummarycountintegeryesnominimum:0No description in lexicon yet.
def:ticketIssuanceSummaryalreadyIssuedbooleannonononeNo description in lexicon yet.
def:ticketCheckInidstringyesnomaxLength:300No description in lexicon yet.
def:ticketCheckIncheckInListIdstringnonomaxLength:300No description in lexicon yet.
def:ticketCheckInscannerDidstringnonoformat:didNo description in lexicon yet.
def:ticketCheckIncheckedInAtstringyesnoformat:datetimeNo description in lexicon yet.
def:producturistringyesnomaxLength:1024, format:at-uriNo description in lexicon yet.
def:productcidstringnonoformat:cidNo description in lexicon yet.
def:appProductReftypestringnonomaxLength:32No description in lexicon yet.
def:appProductRefidstringnonomaxLength:512No description in lexicon yet.
def:appProductRefuristringnonomaxLength:1024, format:at-uriNo description in lexicon yet.
def:appProductRefcidstringnonoformat:cidNo description in lexicon yet.
def:productAppLinkproductUristringyesnomaxLength:1024, format:at-uriNo description in lexicon yet.
def:productAppLinkappDidstringyesnoformat:didNo description in lexicon yet.
def:productAppLinkenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
def:productAppLinkappProductRefref:#appProductRefnonononeNo description in lexicon yet.
def:productAppLinkfulfillmentUrlstringnonomaxLength:1024, format:uriNo description in lexicon yet.
def:productAppLinklabelstringnonomaxLength:800No description in lexicon yet.
def:productAppLinkurlstringnonomaxLength:1024, format:uriNo description in lexicon yet.
def:productAppLinkiconUrlstringnonomaxLength:1024, format:uriNo description in lexicon yet.
def:productAppLinkrolestringnonomaxLength:32No description in lexicon yet.
def:productAppLinkstatusstringnonomaxLength:32No description in lexicon yet.
def:attestationrevisionintegeryesnominimum:0Monotonic per-payment revision.
def:attestationcidstringnonoformat:cidNo description in lexicon yet.
def:attestationpolicyref:#attestationPolicynonononeNo description in lexicon yet.
def:attestationdisabledReasonstringnonomaxLength:256No description in lexicon yet.
def:distributionplannedintegeryesnominimum:0Number of ATM contractual revenue-share distributions payable to the app that were planned for this payment event.
def:appWebhookTestmessagestringnonomaxLength:512No description in lexicon yet.
def:paymentCompletedpaymentref:#paymentyesnononeNo description in lexicon yet.
def:paymentCompleteddistributionref:#distributionnonononeNo description in lexicon yet.
def:paymentCompletedticketsref:#ticketIssuanceSummarynonononeNo description in lexicon yet.
def:paymentCompletedattestationref:#attestationnonononeNo description in lexicon yet.
def:paymentCompletedattestationPendingbooleannonononeTrue when settlement and fulfillment completed while public proof publication remains queued for durable reconciliation.
def:paymentFailedpaymentref:#paymentyesnononeNo description in lexicon yet.
def:paymentFailedreasonstringnonomaxLength:512No description in lexicon yet.
def:paymentRefundedpaymentref:#paymentyesnononeNo description in lexicon yet.
def:paymentRefundedinvoiceIdstringnonomaxLength:256Exact processor invoice cycle affected when the payment is a reusable subscription relationship.
def:paymentRefundedamountintegernonominimum:0No description in lexicon yet.
def:paymentRefundedamountRefundedTotalintegernonominimum:0Cumulative refunded amount for the exact invoice cycle when invoiceId is present; otherwise for the payment, in the smallest currency unit.
def:paymentRefundedpartialbooleannonononeTrue when the payment is only partially refunded so far.
def:paymentRefundedreasonstringnonomaxLength:512No description in lexicon yet.
def:paymentRefundedrefundPreservesTicketEntitlementsbooleannonononeTrue only when this refund must not revoke ATM ticket entitlements.
def:paymentRefundeddistributionref:#distributionnonononeNo description in lexicon yet.
def:paymentRefundUpdatedpaymentref:#paymentyesnononeNo description in lexicon yet.
def:paymentRefundUpdatedinvoiceIdstringnonomaxLength:256Exact processor invoice cycle affected when the payment is a reusable subscription relationship.
def:paymentRefundUpdatedrefundIdstringyesnomaxLength:256No description in lexicon yet.
def:paymentRefundUpdatedstatusstring<pending | succeeded | failed | canceled | requires-action>yesnomaxLength:64No description in lexicon yet.
def:paymentRefundUpdatedamountintegeryesnominimum:0Amount of this refund in the smallest currency unit.
def:paymentRefundUpdatedamountRefundedTotalintegeryesnominimum:0Cumulative refunded amount for the exact invoice cycle when invoiceId is present; otherwise for the payment, in the smallest currency unit.
def:paymentRefundUpdatedpartialbooleanyesnononeTrue when the payment is only partially refunded so far.
def:paymentRefundUpdatedapplicationFeeRefundedbooleanyesnononeTrue when ATM's own application fee was refunded alongside this refund.
def:paymentRefundUpdatedrefundPreservesTicketEntitlementsbooleannonononeTrue only when the aggregate refund authority preserves ATM ticket entitlements.
def:paymentRefundUpdatedreasonstringnonomaxLength:512No description in lexicon yet.
def:paymentDisputedpaymentref:#paymentyesnononeNo description in lexicon yet.
def:paymentDisputedinvoiceIdstringnonomaxLength:256Exact processor invoice cycle affected when the payment is a reusable subscription relationship.
def:paymentDisputeddisputeIdstringnonomaxLength:256Exact processor dispute object for this lifecycle.
def:paymentDisputedreasonstringnonomaxLength:512No description in lexicon yet.
def:paymentDisputeddisputeReasonstringnonomaxLength:512No description in lexicon yet.
def:paymentDisputedstatusstringnonomaxLength:64No description in lexicon yet.
def:paymentDisputeddistributionref:#distributionnonononeNo description in lexicon yet.
def:paymentDisputeClosedpaymentref:#paymentyesnononeNo description in lexicon yet.
def:paymentDisputeClosedinvoiceIdstringnonomaxLength:256Exact processor invoice cycle affected when the payment is a reusable subscription relationship.
def:paymentDisputeCloseddisputeIdstringyesnomaxLength:256No description in lexicon yet.
def:paymentDisputeClosedoutcomestring<won | lost | warning-closed>yesnomaxLength:32No description in lexicon yet.
def:paymentDisputeClosedstatusstringyesnomaxLength:64No description in lexicon yet.
def:paymentDisputeCloseddistributionsReinstatedbooleannonononeTrue when ATM revenue-share distributions payable to the app and reversed at dispute creation were reinstated after a won dispute.
def:paymentDisputeClosedrestoredDisputeCyclesarray<ref:#restoredDisputeCycle>nonomaxLength:100Earlier won cycles whose deferred ATM revenue-share distributions payable to the app became restorable when this dispute closed.
def:orderUpdatedpaymentref:#paymentyesnononeNo description in lexicon yet.
def:subscriptionInvoicePaidpaymentref:#paymentyesnononeNo description in lexicon yet.
def:subscriptionInvoicePaidinvoiceref:#invoiceyesnononeNo description in lexicon yet.
def:subscriptionInvoicePaidinvoiceIdstringnonomaxLength:256No description in lexicon yet.
def:subscriptionInvoicePaiddistributionref:#distributionnonononeNo description in lexicon yet.
def:subscriptionInvoicePaidattestationref:#attestationnonononeNo description in lexicon yet.
def:subscriptionInvoicePaidattestationPendingbooleannonononeTrue when the paid invoice completed while public proof publication remains queued for durable reconciliation.
def:subscriptionChangeUpdatedchangeref:#subscriptionChangeyesnononeNo description in lexicon yet.
def:subscriptionUpdatedsubscriptionref:#subscriptionyesnononeNo description in lexicon yet.
def:subscriptionUpdatedpaymentref:#paymentyesnononeNo description in lexicon yet.
def:subscriptionUpdatedpreviousPaymentref:#paymentnonononeNo description in lexicon yet.
def:subscriptionUpdatedprocessorSubscriptionIdstringnonomaxLength:256Processor subscription object id (e.g.
def:subscriptionUpdatedpriorAmountintegeryesnominimum:0No description in lexicon yet.
def:subscriptionUpdatedamountintegeryesnominimum:0No description in lexicon yet.
def:subscriptionUpdatedcurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:subscriptionUpdatedupdatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:subscriptionUpdatedcurrentPeriodEndstringnonoformat:datetimeNo description in lexicon yet.
def:subscriptionUpdatedupdatedByref:#actorSummarynonononeNo description in lexicon yet.
def:subscriptionUpdatedattestationref:#attestationnonononeNo description in lexicon yet.
def:subscriptionCanceledsubscriptionref:#subscriptionyesnononeNo description in lexicon yet.
def:subscriptionCanceledpaymentref:#paymentyesnononeNo description in lexicon yet.
def:subscriptionCanceledprocessorSubscriptionIdstringnonomaxLength:256Processor subscription object id (e.g.
def:subscriptionCanceledaccessEndsAtstringnoyesformat:datetimeUpper bound on membership access retained after automatic cancellation solely for nonpayment.
def:subscriptionCanceledcanceledAtstringyesnoformat:datetimeNo description in lexicon yet.
def:subscriptionCanceledcanceledByref:#actorSummarynonononeNo description in lexicon yet.
def:subscriptionCanceledreasonstringnonomaxLength:512No description in lexicon yet.
def:subscriptionPaymentFailedsubscriptionref:#subscriptionyesnononeNo description in lexicon yet.
def:subscriptionPaymentFailedpaymentref:#paymentyesnononeNo description in lexicon yet.
def:subscriptionPaymentFailedprocessorSubscriptionIdstringnonomaxLength:256Processor subscription object id (e.g.
def:subscriptionPaymentFailedinvoiceIdstringnonomaxLength:256No description in lexicon yet.
def:subscriptionPaymentFailedreasonstringnonomaxLength:512No description in lexicon yet.
def:subscriptionPaymentFailedhostedInvoiceUrlstringnonomaxLength:2000, format:uriHosted Stripe invoice URL for the SCA/authentication-required case, so apps can link the buyer to complete 3DS re-authentication.
def:subscriptionPaymentFailedaccessEndsAtstringnoyesformat:datetimeUpper bound on renewal grace: at most 14 days or one billing period when shorter, requiring prior positive payment.
def:subscriptionPaymentFailedfailedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:subscriptionRecoveredsubscriptionref:#subscriptionyesnononeNo description in lexicon yet.
def:subscriptionRecoveredpaymentref:#paymentyesnononeNo description in lexicon yet.
def:subscriptionRecoveredprocessorSubscriptionIdstringnonomaxLength:256Processor subscription object id (e.g.
def:subscriptionRecoveredinvoiceIdstringnonomaxLength:256No description in lexicon yet.
def:subscriptionRecoveredrecoveredAtstringyesnoformat:datetimeNo description in lexicon yet.
def:pledgeidstringyesnomaxLength:256No description in lexicon yet.
def:pledgerecipientDidstringyesnoformat:didNo description in lexicon yet.
def:pledgepayerDidstringnonoformat:didUnverified app-supplied payer DID attribution.
def:pledgeamountintegeryesnominimum:1No description in lexicon yet.
def:pledgecurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:pledgeintervalstring<month | quarter | year>yesnomaxLength:16No description in lexicon yet.
def:pledgetierLabelstringnonomaxLength:200No description in lexicon yet.
def:pledgesubscriptionGroupKeystringnonomaxLength:256No description in lexicon yet.
def:pledgelistingref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:pledgestatusstring<pending-setup | active | converting | converted | canceled | superseded | failed | expired>yesnomaxLength:32No description in lexicon yet.
def:pledgeautoConvertbooleanyesnononeNo description in lexicon yet.
def:pledgecreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:pledgecanceledAtstringnonoformat:datetimeNo description in lexicon yet.
def:pledgecanceledBystring<payer | app | creator | admin | system>nonomaxLength:16No description in lexicon yet.
def:pledgeconvertedAtstringnonoformat:datetimeNo description in lexicon yet.
def:pledgeCreatedpledgeref:#pledgeyesnononeNo description in lexicon yet.
def:pledgeCanceledpledgeref:#pledgeyesnononeNo description in lexicon yet.
def:pledgeConvertedpledgeref:#pledgeyesnononeNo description in lexicon yet.
def:pledgeConvertedpaymentIdstringyesnomaxLength:256No description in lexicon yet.
def:pledgeConvertedsubscriptionIdstringnonomaxLength:256Durable ATM subscriptions.id created by the conversion.
def:pledgeConversionFailedpledgeref:#pledgeyesnononeNo description in lexicon yet.
def:pledgeConversionFailedreasonCodestringyesnomaxLength:64Coarse decline class: card_declined, authentication_required, charge_failed, ...
def:pledgeConversionFailedwillRetrybooleanyesnononeTrue when ATM retries automatically after backoff; false when terminally failed (the app owns re-engagement).
def:creatorProofRequestedpaymentIdstringyesnomaxLength:256No description in lexicon yet.
def:creatorProofRequestedcreatorDidstringyesnoformat:didNo description in lexicon yet.
def:creatorProofRequestedattestationCidstringyesnoformat:cidNo description in lexicon yet.
def:creatorProofRequestedpayerProofRefref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:creatorProofRequestedproofRecordref:network.attested.payment.proofyesnononeNo description in lexicon yet.
def:creatorProofRequestedproofLifecycleGenerationintegeryesnominimum:1Exact verified proof-lifecycle generation authorizing this public write request.
def:creatorProofRequestedproofLifecycleStatestring<verified>yesnomaxLength:16No description in lexicon yet.
def:creatorProofRequestedexpiresAtstringyesnoformat:datetimeNo description in lexicon yet.
def:payerClaimeddidstringyesnoformat:didNo description in lexicon yet.
def:payerClaimedpaymentIdsarray<string>yesnomaxLength:200No description in lexicon yet.
def:payerClaimedsubscriptionIdsarray<string>nonomaxLength:200No description in lexicon yet.
def:payerClaimedticketIdsarray<string>nonomaxLength:500No description in lexicon yet.
def:payerClaimedclaimedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:attestationUpdatedpaymentIdstringyesnomaxLength:256No description in lexicon yet.
def:attestationUpdatedpaymentref:#paymentnonononeCanonical sanitized payment snapshot for exact event routing when the receiving app has no local payment mirror.
def:attestationUpdatedproofLifecycleGenerationintegernonominimum:1Monotonic broker-proof lifecycle generation.
def:attestationUpdatedproofLifecycleStatestring<verified | invalidated>nonomaxLength:16Broker-proof lifecycle state at proofLifecycleGeneration.
def:attestationUpdatedattestationRevisionintegeryesnominimum:0Monotonic per-payment revision of the state represented by this event.
def:attestationUpdatedattestationStatusstringyesnomaxLength:64Authoritative ATM attestation state at this revision.
def:attestationUpdatedtrustTierstring<federated | creator-trusted | strict>yesyesmaxLength:32Active public trust tier, or null when the payment is private or invalidated.
def:attestationUpdatedlifecyclestring<active | invalidated>yesnomaxLength:16No description in lexicon yet.
def:attestationUpdatedvisibilitystring<public | private>yesnomaxLength:16No description in lexicon yet.
def:attestationUpdatedinvalidatedAtstringyesyesformat:datetimeAuthoritative invalidation time, or null while the proof lifecycle is active.
def:attestationUpdatedinvalidationReasonstringyesyesmaxLength:128Authoritative refund, dispute, or administrative invalidation reason, or null while active.
def:attestationUpdatedbrokerProofUristringyesyesformat:at-uriNo description in lexicon yet.
def:attestationUpdatedbrokerProofCidstringyesyesformat:cidNo description in lexicon yet.
def:attestationUpdatedpayerProofUristringyesyesformat:at-uriNo description in lexicon yet.
def:attestationUpdatedpayerProofCidstringyesyesformat:cidNo description in lexicon yet.
def:attestationUpdatedpayerProofPendingbooleanyesnononeNo description in lexicon yet.
def:attestationUpdatedpayerResolvedViastring<app | broker | declined>yesyesmaxLength:16No description in lexicon yet.
def:attestationUpdatedpayerRecordSuppressedbooleanyesnononeNo description in lexicon yet.
def:attestationUpdatedcreatorProofUristringyesyesformat:at-uriNo description in lexicon yet.
def:attestationUpdatedcreatorProofCidstringyesyesformat:cidNo description in lexicon yet.
def:attestationUpdatedcreatorProofPendingbooleanyesnononeNo description in lexicon yet.
def:attestationUpdatedcreatorResolvedViastring<app | broker | declined>yesyesmaxLength:16No description in lexicon yet.
def:attestationUpdatedpayerRecordRetractedbooleanyesnononeTrue when the payer removed their public payer record.
def:attestationUpdatedpayerRecordRetractionIdstringyesyesmaxLength:256Stable identifier for this retraction generation.
def:productUpdatedproductref:#productyesnononeNo description in lexicon yet.
def:productUpdatedcreatorDidstringnonoformat:didNo description in lexicon yet.
def:productUpdatedappLinkref:#productAppLinknonononeNo description in lexicon yet.
def:productArchivedproductref:#productyesnononeNo description in lexicon yet.
def:productArchivedcreatorDidstringnonoformat:didNo description in lexicon yet.
def:productArchivedappLinkref:#productAppLinknonononeNo description in lexicon yet.
def:productDeletedproductref:#productyesnononeNo description in lexicon yet.
def:productDeletedcreatorDidstringnonoformat:didNo description in lexicon yet.
def:productDeletedappLinkref:#productAppLinknonononeNo description in lexicon yet.
def:ticketHoldCreatedholdref:#ticketHoldyesnononeNo description in lexicon yet.
def:ticketHoldExpiredholdref:#ticketHoldyesnononeNo description in lexicon yet.
def:ticketsIssuedpaymentIdstringnonomaxLength:300No description in lexicon yet.
def:ticketsIssuedclaimIdstringnonomaxLength:300No description in lexicon yet.
def:ticketsIssuedholdref:#ticketHoldyesnononeNo description in lexicon yet.
def:ticketsIssuedticketsarray<ref:#issuedTicket>yesnononeNo description in lexicon yet.
def:ticketEventCanceledeventref:#ticketEventCanceledEventyesnononeNo description in lexicon yet.
def:ticketEventCanceledreasonstringyesnomaxLength:1000No description in lexicon yet.
def:ticketEventCanceledcanceledAtstringyesnoformat:datetimeNo description in lexicon yet.
def:ticketEventCanceledticketCountintegeryesnominimum:0No description in lexicon yet.
def:ticketEventCanceledpaidTicketCountintegeryesnominimum:0No description in lexicon yet.
def:ticketEventCanceledfreeTicketCountintegeryesnominimum:0No description in lexicon yet.
def:ticketEventCanceledrefundRequestedCountintegeryesnominimum:0No description in lexicon yet.
def:ticketEventCanceledrefundPendingCountintegeryesnominimum:0No description in lexicon yet.
def:ticketEventCanceledrefundNeedsAttentionCountintegeryesnominimum:0No description in lexicon yet.
def:ticketVoidedpaymentIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketVoidedreasonstringnonomaxLength:512No description in lexicon yet.
def:ticketVoidedticketsarray<ref:#issuedTicket>yesnononeNo description in lexicon yet.
def:ticketReleasedbuyerDidstringyesnoformat:didNo description in lexicon yet.
def:ticketReleasedeventIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketReleasedreasonstringnonomaxLength:512No description in lexicon yet.
def:ticketReleasedticketsarray<ref:#issuedTicket>yesnononeNo description in lexicon yet.
def:ticketRefundedpaymentIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketRefundedreasonstringnonomaxLength:512No description in lexicon yet.
def:ticketRefundedticketsarray<ref:#issuedTicket>yesnononeNo description in lexicon yet.
def:ticketPartialRefundReviewpaymentIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketPartialRefundReviewreasonstring<partial-refund>yesnomaxLength:32No description in lexicon yet.
def:ticketPartialRefundReviewamountRefundedintegeryesnominimum:0No description in lexicon yet.
def:ticketPartialRefundReviewactiveTicketIdsarray<string>yesnononeNo description in lexicon yet.
def:ticketPartialRefundReviewmanualVoidMayBeRequiredbooleanyesnononeNo description in lexicon yet.
def:ticketFailedRefundReviewpaymentIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketFailedRefundReviewrefundIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketFailedRefundReviewreasonstring<refund-failed-after-ticket-void | refund-failed-after-preissuance-release>yesnomaxLength:64No description in lexicon yet.
def:ticketFailedRefundReviewticketIdsarray<string>yesnononeNo description in lexicon yet.
def:ticketFailedRefundReviewholdIdstringnonomaxLength:300No description in lexicon yet.
def:ticketFailedRefundReviewmanualRestoreRequiredbooleanyesnononeNo description in lexicon yet.
def:ticketCheckedInticketref:#issuedTicketyesnononeNo description in lexicon yet.
def:ticketCheckedIncheckInref:#ticketCheckInyesnononeNo description in lexicon yet.
def:ticketFormSubmittedticketref:#issuedTicketyesnononeNo description in lexicon yet.
def:ticketFormSubmittedticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketFormSubmittedsubmittedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:ticketFormSubmittedansweredFieldKeysarray<string>yesnomaxLength:30Keys of the fields the attendee answered.
def:ticketWaitlistJoinedwaitlistref:#ticketWaitlistJoinedWaitlistyesnononeNo description in lexicon yet.
def:ticketWaitlistOfferedwaitlistref:#ticketWaitlistOfferedWaitlistyesnononeNo description in lexicon yet.
def:ticketCollaborationInvitedcollaborationref:#ticketCollaborationyesnononeNo description in lexicon yet.
def:ticketCollaborationAcceptedcollaborationref:#ticketCollaborationyesnononeNo description in lexicon yet.
def:ticketCollaborationRevokedcollaborationref:#ticketCollaborationyesnononeNo description in lexicon yet.
def:ticketCollaborationidstringyesnomaxLength:300No description in lexicon yet.
def:ticketCollaborationeventIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketCollaborationprimaryOrganizerDidstringyesnoformat:didNo description in lexicon yet.
def:ticketCollaborationcoOrganizerDidstringyesnoformat:didNo description in lexicon yet.
def:ticketCollaborationstatusstring<pending | accepted | revoked>yesnomaxLength:16No description in lexicon yet.
def:ticketCollaborationrevenueShareBpsintegernonominimum:0, maximum:10000Recorded revenue-share INTENT in basis points, for MANUAL RECONCILIATION ONLY.
def:ticketCollaborationtimestampstringyesnoformat:datetimeNo description in lexicon yet.
def:customerSegmentMessageRequestedsegmentKeystring<at-risk-churn | high-value | lapsed>yesnomaxLength:32Which computed cohort the message targets.
def:customerSegmentMessageRequestedmessageTypestringyesnomaxLength:64App-defined opaque message identifier (e.g.
def:customerSegmentMessageRequestedmemberCountintegeryesnominimum:0Current number of members in the cohort at request time.
def:customerSegmentMessageRequestedrequestedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:recipientAuthorizationUpdatedrecipientDidstringyesnoformat:didNo description in lexicon yet.
def:recipientAuthorizationUpdatedstatusstring<approved | blocked | revoked>yesnomaxLength:16No description in lexicon yet.
def:recipientAuthorizationUpdatedapprovedPaymentTypesarray<string>nonomaxLength:16Payment types the recipient approved this app to originate.
def:recipientAuthorizationUpdatedapprovedFeeShareBpsintegernoyesminimum:0, maximum:10000Maximum 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:recipientAuthorizationUpdatedupdatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:attestationPolicyappRecordstring<public | private>nonomaxLength:16No description in lexicon yet.
def:attestationPolicyattestationstring<public | private>nonomaxLength:16No description in lexicon yet.
def:ticketEventCanceledEventidstringyesnomaxLength:300No description in lexicon yet.
def:ticketEventCanceledEventtitlestringyesnomaxLength:3000, maxGraphemes:300No description in lexicon yet.
def:ticketEventCanceledEventstatusstring<canceled>yesnomaxLength:32No description in lexicon yet.
def:ticketEventCanceledEventstartsAtstringnonoformat:datetimeNo description in lexicon yet.
def:ticketWaitlistJoinedWaitlistidstringyesnomaxLength:300No description in lexicon yet.
def:ticketWaitlistJoinedWaitlisteventIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketWaitlistJoinedWaitlistcapacityGroupIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketWaitlistJoinedWaitlistticketTypeIdstringnonomaxLength:300No description in lexicon yet.
def:ticketWaitlistJoinedWaitlistquantityintegeryesnominimum:1No description in lexicon yet.
def:ticketWaitlistOfferedWaitlistidstringyesnomaxLength:300No description in lexicon yet.
def:ticketWaitlistOfferedWaitlisteventIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketWaitlistOfferedWaitlistcapacityGroupIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketWaitlistOfferedWaitlistticketTypeIdstringnonomaxLength:300No description in lexicon yet.
def:ticketWaitlistOfferedWaitlistquantityintegeryesnominimum:1No description in lexicon yet.
def:ticketWaitlistOfferedWaitlistofferHoldIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketWaitlistOfferedWaitlistofferExpiresAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.event.listEvents11 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramscursorstringnonomaxLength:1024Opaque diagnostic page cursor from a previous test response.
paramsenvironmentstring<test>yesnomaxLength:16Required environment.
paramslimitintegernonominimum:1, maximum:200No description in lexicon yet.
outputeventsarray<ref:#event>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:1024Diagnostic cursor for the next currently delivered test row.
def:eventidstringyesnomaxLength:128Delivery id (the webhook Atm-Delivery-Id).
def:eventtyperef:money.atmosphere.event.defs#eventTypeyesnononeEvent type, e.g.
def:eventseqintegeryesnominimum:1Globally allocated event ordering position, unique and increasing within one ledger lifetime but not contiguous within an app's event history.
def:eventcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:eventenvironmentstring<test>yesnomaxLength:16Always test.
def:eventdataunknownyesnononeA bounded PII-free event summary.
money.atmosphere.event.receiveEvent7 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputidstringyesnomaxLength:128ATM delivery id.
inputtyperef:money.atmosphere.event.defs#eventTypeyesnononeATM event type, such as payment.completed or tickets.issued.
inputcreatedAtstringyesnoformat:datetimeWhen ATM built the event envelope.
inputapiVersionstringyesnomaxLength:32ATM outbound event envelope version.
inputenvironmentstring<test | live>nonomaxLength:16ATM app environment for this delivery.
inputdataunion<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#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>yesnononeEvent-specific payload.
outputacceptedbooleannonononeOptional acknowledgement.
money.atmosphere.membership.assertMember2 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputmemberDidstringyesnoformat:didThe member DID asserting presence. Must equal the JWT issuer.
outputacceptedbooleanyesnononeNo description in lexicon yet.
money.atmosphere.membership.createProgram6 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputcreatorDidstringyesnoformat:didCreator/project DID that will own the membership program.
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputtitlestringyesnominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
inputdescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
inputproductref:com.atproto.repo.strongRefnonononeOptional money.atmosphere.product (kind=membership) in the creator's repo.
outputprogramref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
money.atmosphere.membership.createTier7 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputcreatorDidstringyesnoformat:didNo description in lexicon yet.
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputprogramref:com.atproto.repo.strongRefyesnononeParent money.atmosphere.membership.program record in the creator's repo.
inputproductref:com.atproto.repo.strongRefyesnononeRequired canonical money.atmosphere.product with kind=membership in the creator's repo.
inputrankintegernonominimum:0No description in lexicon yet.
inputsortOrderintegernonominimum:0No description in lexicon yet.
outputtierref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
money.atmosphere.membership.getAccess16 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputmemberDidstringyesnoformat:didMember DID to check. Must match memberAssertionJwt issuer.
inputcreatorDidstringyesnoformat:didCreator or project DID whose membership is being checked.
inputmemberAssertionJwtstringyesnomaxLength:8192Single-use, short-TTL member presence token: a com.atproto.server.getServiceAuth JWT with iss = memberDid, aud = the broker DID's #atmosphere_money_broker service, lxm = money.atmosphere.membership.assertMember. Verified and discarded; jti is replay-protected so a token satisfies exactly one check.
inputenvironmentstring<test | live>nonomaxLength:16ATM app environment. Defaults to live.
inputprogramstringnonoformat:at-uriOptional money.atmosphere.membership.program AT-URI to check.
inputtierstringnonoformat:at-uriOptional money.atmosphere.membership.tier AT-URI to check. When absent, any active tier in the program may satisfy access.
inputtierOrAbovebooleannonononeWhen true, an exact tier match or a different tier with rank strictly greater than the requested tier rank satisfies access. Equal-ranked tiers are peers and do not satisfy one another. Defaults to exact tier/program access.
outputaccessbooleanyesnononeTrue when ATM found an active membership satisfying the request.
outputmemberDidstringyesnoformat:didNo description in lexicon yet.
outputcreatorDidstringyesnoformat:didNo description in lexicon yet.
outputprogramref:com.atproto.repo.strongRefnonononeMatched membership program, when resolved.
outputtiersarray<ref:#accessTier>nonomaxLength:16Matched active tiers the caller is authorized to know about. Empty when access is false or only program-level access is known.
outputcheckedAtstringyesnoformat:datetimeWhen ATM evaluated access.
def:accessTiertierref:com.atproto.repo.strongRefyesnononeMatched money.atmosphere.membership.tier record.
def:accessTierrankintegernonominimum:0Resolved tier rank, when known.
def:accessTiercurrentPeriodEndsAtstringnonoformat:datetimeWhen the current paid period ends, when available to the caller.
money.atmosphere.membership.listGrants19 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramscreatorDidstringnonoformat:didFilter to grants for one creator.
paramsmemberDidstringnonoformat:didFilter to grants for one member.
paramsreferencestringnonomaxLength:256Filter to grants registered with this app-local reference.
paramsenvironmentstring<test | live>nonomaxLength:16ATM app environment.
paramsincludeRevokedbooleannonononeInclude revoked grants (tombstones) in the results.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:256No description in lexicon yet.
outputgrantsarray<ref:#grant>yesnomaxLength:100No description in lexicon yet.
outputcursorstringnonomaxLength:256Opaque pagination cursor; absent on the last page.
def:grantgrantIdstringyesnomaxLength:128No description in lexicon yet.
def:grantmemberDidstringyesnoformat:didNo description in lexicon yet.
def:grantcreatorDidstringyesnoformat:didNo description in lexicon yet.
def:grantprogramstringnonoformat:at-urimoney.atmosphere.membership.program AT-URI, when the grant is program-scoped.
def:granttierstringnonoformat:at-urimoney.atmosphere.membership.tier AT-URI, when the grant is tier-scoped.
def:grantsourcestring<comp | migration | free-claim>yesnomaxLength:32No description in lexicon yet.
def:grantregisteredAtstringyesnoformat:datetimeNo description in lexicon yet.
def:grantexpiresAtstringnonoformat:datetimeNo description in lexicon yet.
def:grantrevokedAtstringnonoformat:datetimePresent only when includeRevoked=true returned a revoked grant.
def:grantreferencestringnonomaxLength:256Opaque app-local reconciliation id echoed back.
money.atmosphere.membership.program7 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordtitlestringyesnominLength:1, maxLength:1000, maxGraphemes:100Public membership program name.
recorddescriptionstringnonomaxLength:10000, maxGraphemes:1000Public description or terms for the membership program.
recordproductref:com.atproto.repo.strongRefnonononeOptional parent money.atmosphere.product record with kind=membership.
recordarchivedbooleannonononeWhether this membership program is no longer offered to new members.
recordarchivedAtstringnonoformat:datetimeNo description in lexicon yet.
recordcreatedAtstringyesnoformat:datetimeWhen this membership program record was created.
recordupdatedAtstringnonoformat:datetimeWhen this membership program record was last updated.
money.atmosphere.membership.registerGrant13 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputmemberDidstringyesnoformat:didMember DID receiving the grant.
inputcreatorDidstringyesnoformat:didCreator or project DID whose membership is being granted.
inputprogramstringnonoformat:at-uriOptional money.atmosphere.membership.program AT-URI in the creator's repo.
inputtierstringnonoformat:at-uriOptional money.atmosphere.membership.tier AT-URI in the creator's repo.
inputsourcestring<comp | migration | free-claim>yesnomaxLength:32Why the grant exists: a creator comp, a billing-migration import, or a free-tier claim flow.
inputenvironmentstring<test | live>nonomaxLength:16ATM app environment.
inputexpiresAtstringnonoformat:datetimeOptional expiry after which the grant no longer satisfies access checks.
inputreferencestringnonomaxLength:256Optional opaque app-local reference for reconciliation (for example a migration batch or comp id).
outputgrantIdstringyesnomaxLength:128Opaque grant id for later revocation.
outputmemberDidstringyesnoformat:didNo description in lexicon yet.
outputcreatorDidstringyesnoformat:didNo description in lexicon yet.
outputregisteredAtstringyesnoformat:datetimeWhen ATM recorded the grant.
outputexpiresAtstringnonoformat:datetimeEchoed expiry, when set.
money.atmosphere.membership.revokeGrant4 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputgrantIdstringyesnomaxLength:128Grant id returned by registerGrant.
inputenvironmentstring<test | live>nonomaxLength:16ATM app environment.
outputrevokedbooleanyesnononeTrue when the grant is revoked (including when it was already revoked).
outputrevokedAtstringyesnoformat:datetimeWhen the grant stopped satisfying access checks.
money.atmosphere.membership.tier8 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordprogramstringyesnoformat:at-uriAT-URI identity of the parent money.atmosphere.membership.program.
recordproductref:com.atproto.repo.strongRefyesnononeRequired canonical money.atmosphere.product record with kind=membership for this tier.
recordrankintegernonominimum:0Optional access rank within the program.
recordsortOrderintegernonominimum:0Creator-controlled display order.
recordarchivedbooleannonononeWhether this tier is no longer available for new members.
recordarchivedAtstringnonoformat:datetimeNo description in lexicon yet.
recordcreatedAtstringyesnoformat:datetimeWhen this tier record was created.
recordupdatedAtstringnonoformat:datetimeWhen this tier record was last updated.
money.atmosphere.membership.updateProgram7 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputprogramref:com.atproto.repo.strongRefyesnononeThe money.atmosphere.membership.program record to update.
inputtitlestringnonominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
inputdescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
inputproductref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
inputarchivedbooleannonononeNo description in lexicon yet.
outputprogramref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
money.atmosphere.membership.updateTier7 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputtierref:com.atproto.repo.strongRefyesnononeThe money.atmosphere.membership.tier record to update.
inputproductref:com.atproto.repo.strongRefnonononeOptional refreshed strongRef to the same Product URI.
inputrankintegernonominimum:0No description in lexicon yet.
inputsortOrderintegernonominimum:0No description in lexicon yet.
inputarchivedbooleannonononeNo description in lexicon yet.
outputtierref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
money.atmosphere.order.defs46 fields
LocationFieldTypeRequiredNullableLimitsDescription
def:fulfillmentmodestring<app-managed | atm-managed>yesnomaxLength:32No description in lexicon yet.
def:fulfillmentownerAppDidstringyesnoformat:didNo description in lexicon yet.
def:fulfillmentworkflowstring<automatic | manual>yesnomaxLength:16No description in lexicon yet.
def:fulfillmentmanagementUrlstringnonomaxLength:2048, format:uriNo description in lexicon yet.
def:routingversionintegeryesnominimum:1No description in lexicon yet.
def:routingkindstring<shop | commission>yesnomaxLength:32No description in lexicon yet.
def:routingclientOrderIdstringyesnomaxLength:200No description in lexicon yet.
def:routingsalesChannelAppDidstringyesnoformat:didNo description in lexicon yet.
def:routingfulfillmentref:#fulfillmentyesnononeNo description in lexicon yet.
def:routinginventoryAuthoritystring<app | atm>yesnomaxLength:16No description in lexicon yet.
def:routinginventoryPolicystring<finite | unlimited>yesnomaxLength:16No description in lexicon yet.
def:inventoryReservationidstringyesnominLength:1, maxLength:64No description in lexicon yet.
def:inventoryReservationinventoryRevisionintegeryesnominimum:1, maximum:9007199254740991Inventory ledger revision frozen when the hold was created.
def:inventoryReservationquantityintegeryesnominimum:1, maximum:999No description in lexicon yet.
def:itemquantityintegernonominimum:1No description in lexicon yet.
def:itemlistingref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:itemproductUristringnonoformat:at-uriNo description in lexicon yet.
def:itemvariantUristringnonoformat:at-uriNo description in lexicon yet.
def:iteminventoryReservationref:#inventoryReservationnonononeNo description in lexicon yet.
def:itemtitlestringnonomaxLength:200No description in lexicon yet.
def:itemvariantstringnonomaxLength:200No description in lexicon yet.
def:itemskustringnonomaxLength:120No description in lexicon yet.
def:orderidstringyesnomaxLength:64No description in lexicon yet.
def:orderclientOrderIdstringyesnomaxLength:200No description in lexicon yet.
def:orderpaymentIdstringyesnomaxLength:256No description in lexicon yet.
def:orderenvironmentstring<live | test>yesnomaxLength:16No description in lexicon yet.
def:orderkindstring<shop | commission>yesnomaxLength:32No description in lexicon yet.
def:orderrevisionintegeryesnominimum:1Monotonic canonical state revision.
def:orderroutingref:#routingyesnononeNo description in lexicon yet.
def:orderfinancialStatusref:#financialStatusyesnononeNo description in lexicon yet.
def:orderfulfillmentStatusref:#fulfillmentStatusyesnononeNo description in lexicon yet.
def:orderfulfillmentStateCauseref:#fulfillmentStateCausenonononeNo description in lexicon yet.
def:orderitemref:#itemnonononeNo description in lexicon yet.
def:ordercreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:orderupdatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:fulfillmentEventidstringyesnomaxLength:64No description in lexicon yet.
def:fulfillmentEventseqintegeryesnominimum:1Monotonic per-order history sequence.
def:fulfillmentEventfromFulfillmentStatusref:#fulfillmentStatusyesnononeNo description in lexicon yet.
def:fulfillmentEventtoFulfillmentStatusref:#fulfillmentStatusyesnononeNo description in lexicon yet.
def:fulfillmentEventrevisionintegeryesnominimum:2No description in lexicon yet.
def:fulfillmentEventnotestringnonomaxLength:1000, maxGraphemes:1000No description in lexicon yet.
def:fulfillmentEventtrackingref:#trackingnonononeNo description in lexicon yet.
def:fulfillmentEventcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:trackingcarrierstringnonomaxLength:64No description in lexicon yet.
def:trackingnumberstringnonomaxLength:128No description in lexicon yet.
def:trackingurlstringnonomaxLength:2048, format:uriNo description in lexicon yet.
money.atmosphere.order.getOrder5 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsidstringnonomaxLength:64No description in lexicon yet.
paramsclientOrderIdstringnonomaxLength:200No description in lexicon yet.
paramskindstring<shop | commission>nonomaxLength:32Required when looking up by clientOrderId.
paramsenvironmentstring<live | test>nonomaxLength:16Required when looking up by clientOrderId.
outputorderref:money.atmosphere.order.defs#orderyesnononeNo description in lexicon yet.
money.atmosphere.order.listOrders8 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<live | test>yesnomaxLength:16No description in lexicon yet.
paramsfulfillmentStatusstring<unfulfilled | ready | on-hold | processing | partially-fulfilled | fulfilled | failed | canceled>nonomaxLength:32No description in lexicon yet.
paramsfinancialStatusstring<not-required | pending | paid | partially-refunded | refunded | disputed | chargeback | failed | canceled>nonomaxLength:32No description in lexicon yet.
paramsupdatedSincestringnonoformat:datetimeOnly orders whose canonical state changed at or after this time.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:2048No description in lexicon yet.
outputordersarray<ref:money.atmosphere.order.defs#order>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:2048No description in lexicon yet.
money.atmosphere.order.updateFulfillment9 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputidstringyesnomaxLength:64No description in lexicon yet.
inputexpectedRevisionintegeryesnominimum:1No description in lexicon yet.
inputfulfillmentStatusstring<ready | processing | partially-fulfilled | fulfilled | on-hold | canceled | failed>yesnomaxLength:32Target fulfillment state.
inputidempotencyKeystringyesnominLength:1, maxLength:200No description in lexicon yet.
inputnotestringnonomaxLength:1000, maxGraphemes:1000No description in lexicon yet.
inputtrackingref:money.atmosphere.order.defs#trackingnonononeNo description in lexicon yet.
outputorderref:money.atmosphere.order.defs#orderyesnononeNo description in lexicon yet.
outputeventref:money.atmosphere.order.defs#fulfillmentEventyesnononeNo description in lexicon yet.
outputreplayedbooleanyesnononeTrue when this response replays a previously recorded mutation for the same idempotencyKey.
money.atmosphere.payment.assertPayer3 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputpayerDidstringyesnoformat:didThe buyer DID asserted by the app-held user session.
inputcheckoutTokenstringnonomaxLength:512Optional ATM checkout/session token this assertion was minted for.
outputacceptedbooleanyesnononeNo description in lexicon yet.
money.atmosphere.payment.authPublishReceipt1 fields
LocationFieldTypeRequiredNullableLimitsDescription
permissionrepo[0]create<money.atmosphere.payment.receipt | money.atmosphere.payment.recurringReceipt>yesnononeAllow this app to create public payment receipt records in your account for payments you complete.
money.atmosphere.payment.cancelPledge5 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputpledgeIdstringyesnomaxLength:256No description in lexicon yet.
inputreasonstringnonomaxLength:256No description in lexicon yet.
outputpledgeIdstringyesnomaxLength:256No description in lexicon yet.
outputstatusstring<canceled>yesnomaxLength:32Pledge status after cancellation (currently always canceled).
outputcanceledAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.payment.cancelSubscription7 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputsubscriptionIdstringnonomaxLength:256Opaque ATM subscription relationship id from money.atmosphere.payment.listSubscriptions.
inputpaymentIdstringnonomaxLength:256Legacy/current ATM recurring payment id.
inputreasonstringnonomaxLength:256No description in lexicon yet.
outputsubscriptionIdstringnonomaxLength:256No description in lexicon yet.
outputpaymentIdstringyesnomaxLength:256No description in lexicon yet.
outputstatusstringyesnomaxLength:64No description in lexicon yet.
outputcanceledAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.payment.convertPledges10 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputrecipientDidstringyesnoformat:didNo description in lexicon yet.
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputpledgeIdsarray<string>nonomaxLength:50No description in lexicon yet.
outputresultsarray<ref:#result>yesnononeNo description in lexicon yet.
def:resultpledgeIdstringyesnomaxLength:256No description in lexicon yet.
def:resultoutcomestring<converted | superseded | waiting | failed | skipped>yesnomaxLength:32No description in lexicon yet.
def:resultreasonstringnonomaxLength:500Why the pledge is waiting/failed/skipped (e.g.
def:resultpaymentIdstringnonomaxLength:256No description in lexicon yet.
def:resultsubscriptionIdstringnonomaxLength:256No description in lexicon yet.
def:resultwillRetrybooleannonononeNo description in lexicon yet.
money.atmosphere.payment.createManagementSession7 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputpayerDidstringyesnoformat:didThe payer DID asserted by the app-held user session.
inputpayerAssertionstringyesnomaxLength:4096Single-use payer service-auth JWT (lxm money.atmosphere.payment.assertPayer, aud = the broker DID's #atmosphere_money_broker service, e.g.
inputsubscriptionIdstringnonomaxLength:256Opaque ATM subscription relationship id from money.atmosphere.payment.listSubscriptions.
inputpaymentIdstringnonomaxLength:256ATM recurring payment id anchor.
inputreturnUrlstringnonomaxLength:1024, format:uriOptional link back into the app shown on the management surface.
outputurlstringyesnoformat:uriShort-lived, single-use management session URL.
outputexpiresAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.payment.createPledge21 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputrecipientDidstringyesnoformat:didRecipient the payer is pledging to.
inputamountintegeryesnominimum:50, maximum:2000000Pledged per-cycle amount in integer minor units (same bounds as checkout).
inputcurrencystringnonominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code.
inputintervalstring<month | quarter | year>yesnomaxLength:16No description in lexicon yet.
inputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
inputpayerDidstringnonoformat:didOptional app-supplied payer attribution hint.
inputpayerEmailHintstringnonomaxLength:320Private prefill hint for the card-save page.
inputtierLabelstringnonomaxLength:200No description in lexicon yet.
inputsubscriptionGroupKeystringnonomaxLength:256Same offering-scoping contract as subscription checkout: pledges and subscriptions sharing a group key are one offering for duplicate blocking.
inputlistingref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
inputentitlementsarray<ref:com.atproto.repo.strongRef>nonomaxLength:50No description in lexicon yet.
inputmetadataunknownnonononePrivate app metadata carried onto the converted payment.
inputautoConvertbooleannonononeDeprecated compatibility alias.
inputrequireManualConversionbooleannonononeWhen true, conversion happens only via convertPledges or the creator dashboard.
inputexpiresAtstringnonoformat:datetimeOptional expiry; the pledge is retired without charge if not converted by then.
inputreturnUrlstringnonomaxLength:2048, format:uriNo description in lexicon yet.
inputcancelUrlstringnonomaxLength:2048, format:uriNo description in lexicon yet.
outputpledgeIdstringyesnomaxLength:256No description in lexicon yet.
outputtokenstringyesnomaxLength:256Browser bearer for the ATM-hosted card-save/manage page.
outputurlstringyesnomaxLength:2048, format:uriNo description in lexicon yet.
outputstatusstring<pending-setup>yesnomaxLength:32Pledge status right after creation (currently always pending-setup: the payer has not saved a card yet).
money.atmosphere.payment.createSubscriptionChangeSession8 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputpayerDidstringyesnoformat:didNo description in lexicon yet.
inputpayerAssertionstringyesnomaxLength:4096No description in lexicon yet.
inputchangeIdstringyesnomaxLength:128No description in lexicon yet.
inputquoteHashstringyesnominLength:64, maxLength:64No description in lexicon yet.
inputreturnUrlstringnonomaxLength:1024, format:uriNo description in lexicon yet.
outputchangeref:money.atmosphere.payment.previewSubscriptionChange#subscriptionChangeyesnononeNo description in lexicon yet.
outputurlstringyesnoformat:uriNo description in lexicon yet.
outputexpiresAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.payment.declineRecord8 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputpaymentIdstringyesnomaxLength:256No description in lexicon yet.
inputrecordTypestring<payer | creator>yesnomaxLength:16No description in lexicon yet.
inputreasonstringnonomaxLength:256No description in lexicon yet.
inputproofLifecycleGenerationintegernonominimum:1, maximum:9007199254740991Exact verified broker-proof lifecycle generation from the delegated request.
inputproofLifecycleStatestring<verified>nonomaxLength:16Verified state paired with proofLifecycleGeneration.
outputpaymentIdstringyesnomaxLength:256No description in lexicon yet.
outputrecordTypestring<payer | creator>yesnomaxLength:16No description in lexicon yet.
outputresolvedViastring<broker | declined>yesnomaxLength:16No description in lexicon yet.
money.atmosphere.payment.defs11 fields
LocationFieldTypeRequiredNullableLimitsDescription
def:fiatMinoramountMinorintegeryesnominimum:0, maximum:9007199254740991Final fiat amount in the ISO 4217 currency's minor unit according to that currency's ISO exponent (for example, cents for USD).
def:fiatMinorcurrencystringyesnominLength:3, maxLength:3Uppercase ISO 4217 alphabetic code (for example, USD or EUR).
def:assetAtomicamountAtomicstringyesnominLength:1, maxLength:78Canonical nonnegative base-10 integer atomic-unit amount: exactly 0, or a positive integer with no leading zero.
def:assetAtomicassetstringyesnominLength:11, maxLength:179Exact 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...).
def:attestedSettlementauthoritystringyesnoformat:didDID whose namespace owns transactionId.
def:attestedSettlementtransactionIdstringyesnominLength:1, maxLength:64Opaque public identifier unique per settlement in authority's namespace: exactly 1 through 64 visible ASCII characters, full match ^[\x21-\x7E]{1,64}$, with no spaces, normalization or case folding.
def:purchaseContextpriceref:com.atproto.repo.strongRefnonononeOptional strongRef to the public posted terms (for example a money.atmosphere.price record) associated with this purchase context. It is committed exactly like an entitlements entry: when a verifier accepts a trusted proof for the receipt, the exact committed uri and cid are bound to the historical settlement assertion, so the purchase context is explainable against the referenced terms by separately dereferencing, authenticating, and validating them. The payment proof does not prove the target exists or authenticate its author, repository, schema, or meaning. The reference carries no quantity, tax, or line-item breakdown, does not restate the amount (value remains the single authoritative settled obligation), and its absence asserts nothing about how the value was computed. The cid is the referenced record's canonical AT repository-record CID string (lowercase unpadded base32 CIDv1, DAG-CBOR, SHA-256/32). The payment proof does not establish that the referenced terms produced the value or that the value derives from them. For recurringReceipt, these references are bound only to the historical initial-settlement assertion for this recurring relationship; the proof establishes neither a renewal nor current subscription or term standing. It is a terms snapshot for that initial settlement only: automatic renewals, later price changes, and a later end of the offer neither create nor update this record, and the reference says nothing about what any later cycle charged. The recurring association includes the stated cadence of that initial settlement, not a later cycle.
def:purchaseContextdiscountsarray<ref:com.atproto.repo.strongRef>nonominLength:1, maxLength:100Optional strongRefs to public discount offer terms associated with this purchase context (for example money.atmosphere.discount records). It is committed exactly like an entitlements entry: when a verifier accepts a trusted proof for the receipt, the exact committed uri and cid are bound to the historical settlement assertion, so a reduced or zero value is explainable by separately dereferencing, authenticating, and validating the referenced terms. The payment proof does not prove the target exists or authenticate its author, repository, schema, or meaning. The reference carries no customer-facing code, eligibility fact, or redemption state (codes and their counters stay private), and its absence asserts nothing about whether a discount applied. The cid is the referenced record's canonical AT repository-record CID string (lowercase unpadded base32 CIDv1, DAG-CBOR, SHA-256/32). The payment proof does not establish that the referenced terms were applied or that the value derives from them. Array order and duplicate entries are committed data, not repeated application or redemption authority. For recurringReceipt, these references are bound only to the historical initial-settlement assertion for this recurring relationship; the proof establishes neither a renewal nor current subscription or term standing. It is a terms snapshot for that initial settlement only: automatic renewals, a later end of the offer, and later price changes neither create nor update this record, and the reference says nothing about what any later cycle charged.
def:purchaseContextentitlementsarray<ref:com.atproto.repo.strongRef>nonominLength:1, maxLength:100Optional 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). Every cid is the referenced record's canonical AT repository-record CID string (lowercase unpadded base32 CIDv1, DAG-CBOR, SHA-256/32). By themselves, these references never establish current, unconsumed, unexpired, or unrevoked access; an independent current entitlement authority or source of truth must make access decisions. Line-item detail (quantities, unit prices, per-item tax) is deliberately not public. For recurringReceipt, these references are bound only to the historical initial-settlement assertion for this recurring relationship; the proof establishes neither a renewal nor current subscription or term standing.
def:recipientScoperecipientstringyesnoformat:didDID of the payment recipient in this scope.
def:recipientScopecontextsarray<ref:money.atmosphere.payment.defs#purchaseContext>nonominLength:1, maxLength:100Optional associated purchase contexts.
money.atmosphere.payment.diagnoseSubscriptionFailure9 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramssubscriptionIdstringyesnomaxLength:128The durable ATM subscription id.
paramsinvoiceIdstringnonomaxLength:256Optional failed-cycle invoice id (informational).
outputreasonstring<payer-declined | payment-method-expired | authentication-required | processor-unavailable | recipient-account-held | recipient-kyc-pending | unknown>yesnomaxLength:32No description in lexicon yet.
outputrecipientHoldbooleanyesnononeTrue when the cause is on the recipient's payout account.
outputretryEligiblebooleanyesnononeWhether the processor will keep retrying (false for recipient holds).
outputrecommendedActionsarray<string>yesnomaxLength:20ATM-authored guidance the app acts on (it owns customer comms).
outputdetailstringyesnomaxLength:256App-safe summary line; never the raw processor message.
outputfailedAtstringnonoformat:datetimeNo description in lexicon yet.
outputinvoiceIdstringnonomaxLength:256No description in lexicon yet.
money.atmosphere.payment.getSubscriptionChange2 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramschangeIdstringyesnomaxLength:128No description in lexicon yet.
outputchangeref:money.atmosphere.payment.previewSubscriptionChange#subscriptionChangeyesnononeNo description in lexicon yet.
money.atmosphere.payment.lifecycle6 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordproofref:com.atproto.repo.strongRefyesnononeExact reference to the immutable money.atmosphere.payment.proof record whose payment this state describes.
recordpreviousref:com.atproto.repo.strongRefnonononeExact immediately preceding lifecycle revision URI and canonical repository-record CID in this proof's path and authority.
recordstatusstring<settled | refunded | partially-refunded | disputed | reversed>yesnomaxLength:64State asserted at this immutable revision.
recordrevisionintegeryesnominimum:1, maximum:9007199254740991Dense public lifecycle sequence for this exact proof path, starting at 1 with no skipped number.
recordreasonstringnonomaxLength:64Optional short machine-readable reason code (kebab-case).
recordasOfstringyesnoformat:datetimeUTC instant at which the lifecycle authority asserted this immutable state.
money.atmosphere.payment.listPayerProofs7 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramspayerstringyesnoformat:at-identifierDID or handle of the payer whose public payment records to list.
paramspaymentTypestring<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled>nonoformat:nsidOptional filter by payment collection.
paramsbrokersarray<string>nonomaxLength:20Optional list of broker DIDs.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024Opaque pagination cursor from a previous response.
outputpaymentsarray<union<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled>>yesnononeList of the payer's verified public payment records, newest first.
outputcursorstringnonomaxLength:1024Pagination cursor.
money.atmosphere.payment.listPendingRecords18 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramspayerDidstringnonoformat:didNo description in lexicon yet.
paramsrecipientDidstringnonoformat:didNo description in lexicon yet.
paramsrecordTypestring<payer | creator | any>nonomaxLength:16No description in lexicon yet.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputrecordsarray<ref:#record>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:recordpaymentIdstringyesnomaxLength:256No description in lexicon yet.
def:recordrecordTypestring<payer | creator>yesnomaxLength:16No description in lexicon yet.
def:recordrecordRkeystringyesnominLength:13, maxLength:13Exact TID-shaped record key the app must use for this publication generation.
def:recordpayerDidstringnonoformat:didNo description in lexicon yet.
def:recordrecipientDidstringnonoformat:didNo description in lexicon yet.
def:recordcollectionstringnonoformat:nsidNo description in lexicon yet.
def:recordcanonicalRecordunion<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled | network.attested.payment.proof>nonononeNo description in lexicon yet.
def:recordattestationCidstringnonoformat:cidNo description in lexicon yet.
def:recordexpectedCidstringyesnoformat:cidNo description in lexicon yet.
def:recordproofLifecycleGenerationintegeryesnominimum:1Exact verified proof-lifecycle generation authorizing these public bytes.
def:recordproofLifecycleStatestring<verified>yesnomaxLength:16No description in lexicon yet.
money.atmosphere.payment.listPledges27 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
paramsrecipientDidstringnonoformat:didNo description in lexicon yet.
paramsstatusstring<pending-setup | active | converting | converted | canceled | superseded | failed | expired | all>nonomaxLength:32No description in lexicon yet.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputpledgesarray<ref:#pledge>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:pledgeidstringyesnomaxLength:256No description in lexicon yet.
def:pledgerecipientDidstringyesnoformat:didNo description in lexicon yet.
def:pledgepayerDidstringnonoformat:didUnverified app-supplied payer DID attribution.
def:pledgeamountintegeryesnominimum:1No description in lexicon yet.
def:pledgecurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:pledgeintervalstring<month | quarter | year>yesnomaxLength:16No description in lexicon yet.
def:pledgetierLabelstringnonomaxLength:200No description in lexicon yet.
def:pledgesubscriptionGroupKeystringnonomaxLength:256No description in lexicon yet.
def:pledgelistingref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:pledgestatusstring<pending-setup | active | converting | converted | canceled | superseded | failed | expired>yesnomaxLength:32No description in lexicon yet.
def:pledgestatusDetailstringnonomaxLength:500Coarse machine-readable reason for the current state (e.g.
def:pledgeautoConvertbooleanyesnononeNo description in lexicon yet.
def:pledgeurlstringyesnomaxLength:2048, format:uriATM-hosted card-save/manage page for this pledge.
def:pledgeconvertedPaymentIdstringnonomaxLength:256No description in lexicon yet.
def:pledgeconvertedSubscriptionIdstringnonomaxLength:256No description in lexicon yet.
def:pledgeconvertedAtstringnonoformat:datetimeNo description in lexicon yet.
def:pledgecanceledAtstringnonoformat:datetimeNo description in lexicon yet.
def:pledgecanceledBystring<payer | app | creator | admin | system>nonomaxLength:16No description in lexicon yet.
def:pledgeexpiresAtstringnonoformat:datetimeNo description in lexicon yet.
def:pledgecreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.payment.listSubscriptions24 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<live | test>nonomaxLength:16No description in lexicon yet.
paramsstatusstring<active | all>nonomaxLength:16No description in lexicon yet.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputsubscriptionsarray<ref:#subscription>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:subscriptionsubscriptionIdstringyesnomaxLength:256Opaque ATM subscription relationship id.
def:subscriptionrevisionintegeryesnominimum:1Monotonic ATM relationship revision.
def:subscriptionpaymentIdstringyesnomaxLength:256Current or initial ATM recurring payment row for this subscription relationship.
def:subscriptionrecipientDidstringyesnoformat:didNo description in lexicon yet.
def:subscriptionoriginatorDidstringyesnoformat:didNo description in lexicon yet.
def:subscriptionenvironmentstring<live | test>yesnomaxLength:16No description in lexicon yet.
def:subscriptionamountintegeryesnominimum:0No description in lexicon yet.
def:subscriptioncurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:subscriptionintervalstring<day | week | month | year>nonomaxLength:16Billing interval unit, matching money.atmosphere.price#recurring.
def:subscriptionintervalCountintegernonominimum:1, maximum:1095Number of interval units between billings.
def:subscriptionstatusstring<completed | active | trialing | past_due | unpaid | canceled | externally-managed>yesnomaxLength:64Subscription relationship status.
def:subscriptioncurrentCyclePaymentStatusstring<pending | paid | refunded | disputed>yesnomaxLength:16Sanitized exact current-cycle payment authority.
def:subscriptionmetadataunknownnonononeSanitized public display hints only.
def:subscriptionentitlementsarray<ref:com.atproto.repo.strongRef>nonomaxLength:50No description in lexicon yet.
def:subscriptionlistingref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:subscriptioncurrentPeriodEndstringnonoformat:datetimeEnd of the currently paid period when known.
def:subscriptioncancelAtPeriodEndbooleanyesnononeTrue when cancellation is scheduled for currentPeriodEnd.
def:subscriptioncreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.payment.previewSubscriptionChange42 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputpayerDidstringyesnoformat:didNo description in lexicon yet.
inputpayerAssertionstringyesnomaxLength:4096No description in lexicon yet.
inputenvironmentstring<live | test>yesnomaxLength:16No description in lexicon yet.
inputsubscriptionIdstringyesnomaxLength:256No description in lexicon yet.
inputexpectedRevisionintegeryesnominimum:1No description in lexicon yet.
inputchangeAttemptIdstringyesnominLength:1, maxLength:200App-generated idempotency key.
inputtargetProgramref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
inputtargetTierref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
inputtargetPriceref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
inputtargetAmountintegernonominimum:0Optional target amount assertion.
outputchangeref:money.atmosphere.payment.previewSubscriptionChange#subscriptionChangeyesnononeNo description in lexicon yet.
def:subscriptionChangechangeIdstringyesnomaxLength:128Opaque ATM tier-change id.
def:subscriptionChangesubscriptionIdstringyesnomaxLength:256No description in lexicon yet.
def:subscriptionChangesubscriptionRevisionintegeryesnominimum:1No description in lexicon yet.
def:subscriptionChangeenvironmentstring<live | test>yesnomaxLength:16No description in lexicon yet.
def:subscriptionChangestatusstring<quoted | awaiting-confirmation | awaiting-payment | action-required | scheduled | paid-pending-apply | applied | failed | canceled | superseded | expired>yesnomaxLength:32No description in lexicon yet.
def:subscriptionChangedirectionstring<upgrade | downgrade | lateral>yesnomaxLength:16No description in lexicon yet.
def:subscriptionChangefromPaymentIdstringyesnomaxLength:256No description in lexicon yet.
def:subscriptionChangecurrentProgramref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:subscriptionChangecurrentTierref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:subscriptionChangecurrentListingref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:subscriptionChangetargetProgramref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:subscriptionChangetargetTierref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:subscriptionChangetargetListingref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:subscriptionChangetargetEntitlementsarray<ref:com.atproto.repo.strongRef>yesnomaxLength:50No description in lexicon yet.
def:subscriptionChangecurrentAmountintegeryesnominimum:0No description in lexicon yet.
def:subscriptionChangetargetAmountintegeryesnominimum:0No description in lexicon yet.
def:subscriptionChangechargeAmountintegeryesnominimum:0Amount ATM will attempt immediately after exact hosted confirmation.
def:subscriptionChangecurrencystringyesnominLength:3, maxLength:3No description in lexicon yet.
def:subscriptionChangeintervalstring<day | week | month | year>yesnomaxLength:16No description in lexicon yet.
def:subscriptionChangeintervalCountintegeryesnominimum:1, maximum:1095No description in lexicon yet.
def:subscriptionChangerequiresPaymentbooleanyesnononeTrue when confirmation requires an immediate upgrade payment.
def:subscriptionChangeeffectiveAtstringyesnoformat:datetimeNo description in lexicon yet.
def:subscriptionChangecurrentPeriodEndstringnonoformat:datetimeNo description in lexicon yet.
def:subscriptionChangequoteHashstringyesnominLength:64, maxLength:64ATM-authored hash of the exact revision, CIDs, money, cadence, policy, and expiry shown to the payer.
def:subscriptionChangequoteExpiresAtstringyesnoformat:datetimeNo description in lexicon yet.
def:subscriptionChangeconfirmedAtstringnonoformat:datetimeNo description in lexicon yet.
def:subscriptionChangepaidAtstringnonoformat:datetimeNo description in lexicon yet.
def:subscriptionChangeappliedAtstringnonoformat:datetimeNo description in lexicon yet.
def:subscriptionChangefailureCodestringnonomaxLength:64No description in lexicon yet.
def:subscriptionChangecreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:subscriptionChangeupdatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.payment.proof2 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordcidstringyesnoformat:cidCanonical payment commitment CID: lowercase unpadded base32 CIDv1, DAG-CBOR codec 0x71, SHA-256 with a 32-byte digest.
recordprofilestring<money-atmosphere-v1 | money-atmosphere-guest-v1>yesnomaxLength:64Commitment-profile token identifying the exact byte-level commitment algorithm.
money.atmosphere.payment.receipt6 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordrecipientsarray<ref:money.atmosphere.payment.defs#recipientScope>yesnominLength:1, maxLength:32Authoritative recipient scopes for this single settled obligation, with optional historical purchase contexts.
recordvalueunion<money.atmosphere.payment.defs#fiatMinor | money.atmosphere.payment.defs#assetAtomic>yesnononeThe single authoritative value satisfied by this settlement: either fiat minor units or fungible-asset atomic units.
recordsettlementunion<money.atmosphere.payment.defs#attestedSettlement>yesnononeCommitted open settlement union.
recordsettledAtstringyesnoformat:datetimeUTC instant at which the canonical accepted-settlement authority asserts the settlement transition occurred (millisecond precision, Z suffix).
recordnoncestringyesnominLength:32, maxLength:32Exactly 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.
recordproofsarray<ref:com.atproto.repo.strongRef>yesnomaxLength:10References to immutable money.atmosphere.payment.proof records in each attester's own repository.
money.atmosphere.payment.receiptRetraction1 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordreceiptref:com.atproto.repo.strongRefyesnononeExact money.atmosphere.payment.receipt or recurringReceipt URI and canonical repository-record CID being retracted.
money.atmosphere.payment.recurringEnd5 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordproofref:com.atproto.repo.strongRefyesnononeExact enrollment broker proof URI and canonical repository-record CID.
recordpreviousref:com.atproto.repo.strongRefnonononeExact immediately preceding recurringEnd URI/CID on this broker/enrollment path.
recordstatusstring<ended | end-withdrawn>yesnomaxLength:64ended asserts an actual terminal series outcome, not a cancel-at-period-end request, failed/past-due payment or pause.
recordrevisionintegeryesnominimum:1, maximum:9007199254740991Dense immutable per-enrollment end-evidence revision.
recordendedAtstringnonominLength:10, maxLength:10Actual terminal-outcome date at UTC date precision, exactly a valid proleptic Gregorian YYYY-MM-DD calendar date.
money.atmosphere.payment.recurringReceipt8 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordrecipientsarray<ref:money.atmosphere.payment.defs#recipientScope>yesnominLength:1, maxLength:32Authoritative recipient scopes for this single settled obligation, with optional historical purchase contexts.
recordvalueunion<money.atmosphere.payment.defs#fiatMinor | money.atmosphere.payment.defs#assetAtomic>yesnononeThe single authoritative value satisfied by the initial settlement that begins this recurring relationship, after applicable discounts and charged tax.
recordsettlementunion<money.atmosphere.payment.defs#attestedSettlement>yesnononeCommitted open settlement union.
recordsettledAtstringyesnoformat:datetimeUTC instant at which the canonical accepted-settlement authority asserts the recurring relationship's initial settlement occurred (millisecond precision, Z suffix).
recordnoncestringyesnominLength:32, maxLength:32Exactly 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.
recordintervalstring<day | week | month | year>yesnominLength:1, maxLength:16Billing interval unit accepted when the recurring relationship's initial settlement occurred (cadence snapshot).
recordintervalCountintegeryesnominimum:1, maximum:366Multiplier applied to `interval` (e.g.
recordproofsarray<ref:com.atproto.repo.strongRef>yesnomaxLength:10References to immutable money.atmosphere.payment.proof records in each attester's own repository.
money.atmosphere.payment.refundPayment13 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputpaymentIdstringyesnomaxLength:256No description in lexicon yet.
inputinvoiceIdstringnonomaxLength:256Exact processor invoice cycle to refund for a subscription payment.
inputamountintegernonominimum:1Refund amount in the smallest currency unit.
inputreasonCodestring<requested-by-customer | duplicate | fraudulent>nonomaxLength:32Processor-aligned refund reason code.
inputreasonstringnonomaxLength:512Optional free-text reason surfaced in refund webhooks and dashboards.
inputcancelSubscriptionbooleannonononeFor subscription payments, also cancel the underlying subscription so it stops billing.
inputidempotencyKeystringyesnominLength:1, maxLength:256Required opaque key for one logical refund operation.
outputrefundIdstringyesnomaxLength:256No description in lexicon yet.
outputinvoiceIdstringnonomaxLength:256Exact processor invoice cycle the refund was applied to, when invoice-backed.
outputstatusstring<pending | succeeded | failed | canceled | requires-action>yesnomaxLength:64Processor refund status at creation time.
outputamountintegeryesnominimum:1Amount of this refund in the smallest currency unit.
outputamountRefundedTotalintegeryesnominimum:0Cumulative refunded amount for the exact invoice cycle when invoiceId is present; otherwise for the payment, in the smallest currency unit.
outputpaymentStatusstringyesnomaxLength:64No description in lexicon yet.
money.atmosphere.payment.registerCreatorProof9 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputpaymentIdstringyesnomaxLength:256No description in lexicon yet.
inputcreatorProofUristringyesnoformat:at-uriNo description in lexicon yet.
inputcreatorProofCidstringyesnoformat:cidNo description in lexicon yet.
inputproofLifecycleGenerationintegernonominimum:1, maximum:9007199254740991Exact verified broker-proof lifecycle generation from the delegated request.
inputproofLifecycleStatestring<verified>nonomaxLength:16Verified state paired with proofLifecycleGeneration.
outputpaymentIdstringyesnomaxLength:256No description in lexicon yet.
outputcreatorProofUristringyesnoformat:at-uriNo description in lexicon yet.
outputcreatorProofCidstringyesnoformat:cidNo description in lexicon yet.
outputalreadyRegisteredbooleannonononeNo description in lexicon yet.
money.atmosphere.payment.verifyReceipt122 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsuristringyesnoformat:at-uriAT-URI of the exact receipt record to verify.
paramscidstringyesnoformat:cidCanonical AT repository-record CID of the exact generation being verified: lowercase unpadded base32 CIDv1, dag-cbor codec, sha2-256 with a 32-byte digest.
paramsattesterstringnonoformat:didOptional single-attester FILTER intersected with the service's fixed trust policy.
outputresultunion<#current | #cidMismatch | #absent | #unavailable | #retracted | #retractionInvalid>yesnononeExactly one settlement-evidence variant.
outputpolicyEvaluationref:#policyEvaluationyesnononeMandatory machine-readable boundary of the intermediate settlement-only algorithm.
def:policyEvaluationidstring<broker-trusted | creator-trusted | strict-identified | strict-independent-identified | guest-broker-trusted | guest-corroborated>yesnomaxLength:64No description in lexicon yet.
def:policyEvaluationversionintegeryesnominimum:1, maximum:1No description in lexicon yet.
def:policyEvaluationscopestring<historical | standing>yesnomaxLength:10No description in lexicon yet.
def:policyEvaluationstatusstring<not-evaluated>yesnomaxLength:16No description in lexicon yet.
def:policyEvaluationauthorizationstring<none>yesnomaxLength:4No description in lexicon yet.
def:currentblockref:#blockEvidenceyesnononeExact authenticated repository block evidence for this generation.
def:currentrecordunknownnonononeThe exact decoded receipt record.
def:currentauthorstringyesnoformat:didAuthor DID derived from authenticated provenance; the DID used in the commitment recomputation.
def:currentsettlementunion<#attested | #recordInvalid | #unattested | #invalidEvidence | #unsupportedProfile | #proofReplaced | #proofAbsent | #settlementUnavailable>yesnononeSettlement-evidence bundle (with lifecycle nested under #attested).
def:currentevidenceAsOfstringyesnoformat:datetimeThe evidence boundary used to produce this response.
def:attestedproofref:com.atproto.repo.strongRefyesnononeExact reference (uri + record CID) to the immutable proof record.
def:attestedproofRecordunknownyesnononeThe verifying proof record, verbatim.
def:attestedattesterstringyesnoformat:didAuthenticated controlling DID of the attesting repository.
def:attestedlifecycleunion<#lifecycleKnown | #lifecycleMissing | #lifecycleInvalid | #lifecycleUnavailable | #noLifecycleAuthority>yesnononeLifecycle-evidence bundle.
def:attestedlifecyclePathsarray<union<#pathValidated | #pathMissing | #pathInvalid | #pathUnresolved>>yesnomaxLength:10EXHAUSTIVE 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:invalidEvidenceproofref:com.atproto.repo.strongRefyesnononeExact reference to the proof record that failed verification (deterministically selected when several fail; see COMMITMENT_PROFILE.md).
def:invalidEvidenceblockref:#blockEvidenceyesnononeExact authenticated proof block evidence.
def:invalidEvidencereasonstring<commitment-mismatch | proof-malformed>yesnomaxLength:64Machine-readable failure class (kebab-case).
def:settlementUnavailableattesterstringyesnoformat:didThe unreachable attesting repository’s DID (deterministically selected when several are unreachable).
def:settlementUnavailableretryablebooleanyesnononeOR of the transient classifications across ALL unreachable trusted attesters: true when at least one failure looked transient.
def:lifecycleKnownuristringyesnoformat:at-uriNo description in lexicon yet.
def:lifecycleKnowncidstringyesnoformat:cidRecord CID of the exact lifecycle generation this response reports.
def:lifecycleKnownrecordunknownyesnononeThe lifecycle record at the returned exact cid, verbatim.
def:lifecycleKnownblockref:#blockEvidenceyesnononeExact authenticated lifecycle block evidence.
def:lifecycleKnownproofref:com.atproto.repo.strongRefyesnononeThe lifecycle path's own verifying proof (its exact strongRef) — the path this evidence is bound to.
def:lifecycleKnownclassificationunion<#lifecyclePrefix | #lifecycleCurrent>yesnononeSeparate prefix/current classification; a validated record alone does not establish currentness.
def:lifecycleKnownwindowref:#lifecycleWindowyesnononeNo description in lexicon yet.
def:lifecycleUnavailableproofref:com.atproto.repo.strongRefyesnononeThe representative unresolved candidate path (deterministically selected by lowest bytewise path triple among ALL unresolved candidates).
def:lifecycleUnavailablecauseunion<#causeSidecarUnreachable | #causeProofUnreachable | #causeProofReplaced | #causeProofAbsent | #causeProofUnsupportedProfile | #causeProofInvalid>yesnononeWhy the representative path is unresolved — each cause variant schema-REQUIRES its own evidence.
def:lifecycleUnavailableretryablebooleanyesnononeAggregate retryability.
def:cidMismatchcurrentCidstringyesnoformat:cidThe record CID currently at the uri, from an authenticated current-head read.
def:cidMismatchevidenceAsOfstringyesnoformat:datetimeNo description in lexicon yet.
def:absentconfirmedAtstringyesnoformat:datetimeWhen current-repository absence was authoritatively confirmed.
def:unavailableretryablebooleanyesnononeNo description in lexicon yet.
def:unsupportedProfileproofref:com.atproto.repo.strongRefyesnononeExact reference to the unjudgeable proof (deterministically selected when several).
def:unsupportedProfileprofilestringyesnomaxLength:64The unrecognized profile token, verbatim.
def:lifecycleInvaliduristringyesnoformat:at-uriNo description in lexicon yet.
def:lifecycleInvalidcidstringyesnoformat:cidRecord CID of the exact offending generation.
def:lifecycleInvalidblockref:#blockEvidenceyesnononeExact authenticated lifecycle block evidence.
def:lifecycleInvalidreasonstring<record-invalid | wrong-proof-binding | chain-integrity>yesnomaxLength:64Machine-readable failure class (kebab-case).
def:lifecycleInvalidproofref:com.atproto.repo.strongRefyesnononeThe candidate path (its proof strongRef) whose lifecycle chain is unusable.
def:lifecycleInvalidwindowref:#lifecycleWindowyesnononeNo description in lexicon yet.
def:proofReplacedproofref:com.atproto.repo.strongRefyesnononeThe receipt’s pinned reference (deterministically selected when several; see COMMITMENT_PROFILE.md).
def:proofReplacedcurrentCidstringyesnoformat:cidThe record CID currently at the URI, from the authenticated current-head read.
def:proofAbsentproofref:com.atproto.repo.strongRefyesnononeThe receipt’s pinned reference (deterministically selected when several; see COMMITMENT_PROFILE.md).
def:proofAbsentconfirmedAtstringyesnoformat:datetimeWhen current absence was authoritatively confirmed.
def:lifecycleMissingconfirmedAtstringyesnoformat:datetimeWhen current absence was authoritatively confirmed.
def:lifecycleMissingproofref:com.atproto.repo.strongRefyesnononeThe candidate path (its proof strongRef) whose authenticated deterministic lifecycle window has no present revision.
def:lifecycleMissingclassificationunion<#lifecyclePrefix | #lifecycleCurrent>yesnononeSeparate prefix/current classification; a validated record alone does not establish currentness.
def:lifecycleMissingwindowref:#lifecycleWindowyesnononeNo description in lexicon yet.
def:causeSidecarUnreachabletransientbooleanyesnononeThis path's own failure classification per the profile's taxonomy.
def:causeProofUnreachabletransientbooleanyesnononeThis path's own failure classification per the profile's taxonomy.
def:causeProofReplacedcurrentCidstringyesnoformat:cidThe record CID currently at the URI.
def:causeProofAbsentconfirmedAtstringyesnoformat:datetimeWhen current absence was authoritatively confirmed.
def:causeProofUnsupportedProfileprofilestringyesnomaxLength:64The unrecognized profile token, verbatim.
def:causeProofInvalidreasonstring<commitment-mismatch | proof-malformed>yesnomaxLength:64Machine-readable failure class (kebab-case).
def:causeProofInvalidblockref:#blockEvidenceyesnononeExact authenticated proof block evidence.
def:pathValidatedproofref:com.atproto.repo.strongRefyesnononeThe path (its proof strongRef).
def:pathValidateduristringyesnoformat:at-uriNo description in lexicon yet.
def:pathValidatedcidstringyesnoformat:cidExact record CID observed at this path — the high-water candidate generation.
def:pathValidatedstatusstring<settled | refunded | partially-refunded | disputed | reversed>yesnomaxLength:64The record's status (kebab-case; open set — unknown values fail closed for authorization).
def:pathValidatedrevisionintegeryesnominimum:1, maximum:9007199254740991The record's per-path revision.
def:pathValidatedrecordunknownyesnononeThe lifecycle record at the returned cid, verbatim.
def:pathValidatedblockref:#blockEvidenceyesnononeExact authenticated lifecycle block evidence.
def:pathValidatedclassificationunion<#lifecyclePrefix | #lifecycleCurrent>yesnononeSeparate prefix/current classification; a validated record alone does not establish currentness.
def:pathValidatedwindowref:#lifecycleWindowyesnononeNo description in lexicon yet.
def:pathMissingproofref:com.atproto.repo.strongRefyesnononeThe path (its proof strongRef).
def:pathMissingconfirmedAtstringyesnoformat:datetimeWhen current absence was authoritatively confirmed.
def:pathMissingclassificationunion<#lifecyclePrefix | #lifecycleCurrent>yesnononeSeparate prefix/current classification; a validated record alone does not establish currentness.
def:pathMissingwindowref:#lifecycleWindowyesnononeNo description in lexicon yet.
def:pathInvalidproofref:com.atproto.repo.strongRefyesnononeThe path (its proof strongRef).
def:pathInvaliduristringyesnoformat:at-uriNo description in lexicon yet.
def:pathInvalidcidstringyesnoformat:cidRecord CID of the exact offending generation.
def:pathInvalidblockref:#blockEvidenceyesnononeExact authenticated lifecycle block evidence.
def:pathInvalidreasonstring<record-invalid | wrong-proof-binding | chain-integrity>yesnomaxLength:64Machine-readable failure class (kebab-case).
def:pathInvalidwindowref:#lifecycleWindowyesnononeNo description in lexicon yet.
def:blockEvidenceencodedBytesintegeryesnominimum:0, maximum:9007199254740991No description in lexicon yet.
def:blockEvidencebytesbytesnonomaxLength:65536No description in lexicon yet.
def:pathUnresolvedproofref:com.atproto.repo.strongRefyesnononeThe path (its proof strongRef).
def:pathUnresolvedcauseunion<#causeSidecarUnreachable | #causeProofUnreachable | #causeProofReplaced | #causeProofAbsent | #causeProofUnsupportedProfile | #causeProofInvalid>yesnononeWhy this path is unresolved — each cause variant schema-REQUIRES its own evidence.
def:repositoryEvidencesignedCommitbytesyesnomaxLength:65536Exact authenticated signed repository commit block for repositoryState.
def:repositoryEvidencemstBlocksarray<bytes>yesnomaxLength:128Shared MST proof blocks, each included once; every requested path is provable from this set and the signed commit.
def:lifecyclePresentrevisionintegeryesnominimum:1, maximum:9007199254740991No description in lexicon yet.
def:lifecyclePresenturistringyesnoformat:at-uriNo description in lexicon yet.
def:lifecyclePresentcidstringyesnoformat:cidNo description in lexicon yet.
def:lifecyclePresentblockref:#blockEvidenceyesnononeNo description in lexicon yet.
def:lifecyclePresentrepositoryStatestringyesnominLength:1, maxLength:2048Canonical DAG-CBOR/SHA-256 CID of the exact signed commit in repositoryEvidence.
def:lifecycleAbsentrevisionintegeryesnominimum:1, maximum:9007199254740991No description in lexicon yet.
def:lifecycleAbsenturistringyesnoformat:at-uriNo description in lexicon yet.
def:lifecycleAbsentconfirmedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:lifecycleAbsentrepositoryStatestringyesnominLength:1, maxLength:2048Opaque authenticated repository-state identity.
def:priorPrefixproofref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:priorPrefixrepositoryStatestringyesnominLength:1, maxLength:2048Opaque authenticated repository-state identity.
def:priorPrefixthroughRevisionintegeryesnominimum:1, maximum:9007199254740991No description in lexicon yet.
def:priorPrefixterminalref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:priorPrefixterminalBlockref:#blockEvidenceyesnononeExact authenticated predecessor terminal record block.
def:lifecycleWindowstartRevisionintegeryesnominimum:1, maximum:9007199254740991No description in lexicon yet.
def:lifecycleWindowrepositoryStatestringyesnominLength:1, maxLength:2048Opaque authenticated repository-state identity.
def:lifecycleWindowobservationsarray<union<#lifecyclePresent | #lifecycleAbsent>>yesnominLength:17, maxLength:17No description in lexicon yet.
def:lifecycleWindowrepositoryEvidenceref:#repositoryEvidenceyesnononeNo description in lexicon yet.
def:lifecycleWindowpriorPrefixref:#priorPrefixnonononeNo description in lexicon yet.
def:lifecycleSourceidstringyesnominLength:1, maxLength:2048Exact operator-qualified source identifier, bounded by the profile to 512 UTF-16 code units.
def:lifecycleSourcekindstring<gap-free | complete-exhaustion>yesnomaxLength:64No description in lexicon yet.
def:lifecycleSourcerepositoryStatestringyesnominLength:1, maxLength:2048Opaque authenticated repository-state identity.
def:lifecycleSourcethroughRevisionintegeryesnominimum:0, maximum:9007199254740991No description in lexicon yet.
def:lifecyclePrefixthroughRevisionintegeryesnominimum:0, maximum:9007199254740991No description in lexicon yet.
def:lifecycleCurrentthroughRevisionintegeryesnominimum:0, maximum:9007199254740991No description in lexicon yet.
def:lifecycleCurrentsourceref:#lifecycleSourceyesnononeNo description in lexicon yet.
def:retractedauthorstringyesnoformat:didNo description in lexicon yet.
def:retractedreceiptref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:retractedretractionref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:retractedblockref:#blockEvidenceyesnononeNo description in lexicon yet.
def:retractedrecordunknownyesnononeExact decoded receiptRetraction record, validated against the returned block and exact receipt strongRef.
def:retractedevidenceAsOfstringyesnoformat:datetimeNo description in lexicon yet.
def:retractionInvalidretractionref:com.atproto.repo.strongRefyesnononeNo description in lexicon yet.
def:retractionInvalidblockref:#blockEvidenceyesnononeNo description in lexicon yet.
def:retractionInvalidevidenceAsOfstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.payment.verifyRecord13 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramspaymentUristringyesnoformat:at-uriExact AT-URI of a network.attested.payment record in its payer-of-record repository.
paramspaymentCidstringyesnoformat:cidExact record CID paired with paymentUri.
paramsrecipientstringnonoformat:at-identifierOptional expected recipient DID or handle.
outputverifiedbooleanyesnononeTrue only when this exact payer record is indexed and backed by ATM's current active broker-proof generation.
outputpaymentref:com.atproto.repo.strongRefnonononeThe exact verified payment record generation.
outputpaymentRecordunion<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled>nonononeVerbatim public payment record body for CID and attestation-CID verification.
outputpayerstringnonoformat:didPayer-of-record repository DID.
outputrecipientstringnonoformat:didNo description in lexicon yet.
outputpaymentTypestring<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled>nonoformat:nsidNo description in lexicon yet.
outputattestationCidstringnonoformat:cidCID the broker proof attests after attested.network canonicalization.
outputbrokerstringnonoformat:didTrusted broker DID that authored brokerProof.
outputbrokerProofref:com.atproto.repo.strongRefnonononeExact current active network.attested.payment.proof generation.
outputbrokerProofRecordref:network.attested.payment.proofnonononeVerbatim public broker-proof body for independent lifecycle and CID verification.
money.atmosphere.price22 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordofferUristringyesnoformat:at-uriAT-URI of the offer record this Price belongs to: a money.atmosphere.product or tickets.atmosphere.ticketType in the same repo.
recordlookupKeystringnonomaxLength:200No description in lexicon yet.
recordnicknamestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
recordcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code.
recordunitAmountintegernonominimum:0Amount in the smallest unit of currency (e.g.
recordcustomUnitAmountref:#customUnitAmountnonononeStripe-compatible customer-chosen amount configuration.
recordbillingSchemestring<per-unit | tiered>nonomaxLength:32Stripe-compatible billing scheme.
recordtiersModestring<graduated | volume>nonomaxLength:32Stripe-compatible tier mode when billingScheme is tiered.
recordtiersarray<ref:#tier>nonomaxLength:100Stripe-compatible quantity or usage tiers for future non-Supper apps.
recordtypestring<one-time | recurring>yesnomaxLength:16No description in lexicon yet.
recordrecurringref:#recurringnonononeNo description in lexicon yet.
recordarchivedbooleannonononeNo description in lexicon yet.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
recordupdatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:tierupTointegernonominimum:1Inclusive upper quantity bound for this tier, matching Stripe tiers[].up_to.
def:tierunitAmountintegernonominimum:0No description in lexicon yet.
def:tierflatAmountintegernonominimum:0No description in lexicon yet.
def:customUnitAmountenabledbooleanyesnononeNo description in lexicon yet.
def:customUnitAmountminimumintegernonominimum:1Minimum buyer-entered amount, in the smallest unit of currency.
def:customUnitAmountmaximumintegernonominimum:1Maximum buyer-entered amount, in the smallest unit of currency.
def:recurringintervalstring<day | week | month | year>yesnomaxLength:16No description in lexicon yet.
def:recurringintervalCountintegernonominimum:1, maximum:1095Number of interval units between billings (Stripe allows up to 3 years per cycle, e.g.
money.atmosphere.product13 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordtitlestringyesnominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
recordskustringnonomaxLength:64No description in lexicon yet.
recorddefaultPriceref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
recordkindstring<physical | digital | commission | membership | service | ticket | support | other>yesnomaxLength:32Open coarse classification.
recorddescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
recordimageref:#imagenonononePublic product image.
recordvariantOfref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
recordarchivedbooleannonononeNo description in lexicon yet.
recordarchivedAtstringnonoformat:datetimeNo description in lexicon yet.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
recordupdatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:imageblobblobyesnononeNo description in lexicon yet.
def:imagealtstringnonomaxLength:3000, maxGraphemes:300No description in lexicon yet.
money.atmosphere.segments.listMembers11 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramssegmentKeystring<at-risk-churn | high-value | lapsed>yesnomaxLength:32Which computed cohort to list.
paramsenvironmentstring<test | live>nonomaxLength:16Which app environment to read.
paramslimitintegernonominimum:1, maximum:200No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputmembersarray<ref:#member>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:memberbuyerDidstringnonoformat:didBuyer DID.
def:memberemailMaskedstringnonomaxLength:320Pre-masked email hint (e.g.
def:membercurrencystringnonominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code.
def:memberamountintegernonominimum:0Display figure for the cohort (e.g.
def:membercomputedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.segments.requestMessage5 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputsegmentKeystring<at-risk-churn | high-value | lapsed>yesnomaxLength:32Which computed cohort to message.
inputenvironmentstring<test | live>nonomaxLength:16Which app environment to target.
inputmessageTypestringyesnomaxLength:64App-defined opaque message identifier (e.g.
outputmemberCountintegeryesnominimum:0Number of cohort members at request time.
outputrequestedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.sellerTerms6 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordsectionsarray<ref:#section>yesnominLength:1, maxLength:16The disclosed policy sections, each kind at most once.
recordeffectiveFromstringyesnoformat:datetimeInclusive instant from which the seller applies this version to new purchases.
recordpreviousref:com.atproto.repo.strongRefnonononeThe exact prior version this one supersedes, bound by AT-URI and CID.
recordcreatedAtstringyesnoformat:datetimeSeller-declared instant when this version was authored.
def:sectionkindstring<refund | return | delivery | cancellation | subscription | support>yesnomaxLength:64Which policy the section states.
def:sectiontextstringyesnomaxLength:50000, maxGraphemes:5000The policy text as disclosed to buyers.
money.atmosphere.temp.membership.defs5 fields
LocationFieldTypeRequiredNullableLimitsDescription
def:spaceBindingViewspacestringyesnomaxLength:1600Exact creator-owned money.atmosphere.temp.membership.access alpha space reference represented by this binding.
def:spaceBindingViewactivebooleanyesnononeWhether this exact space URI is currently registered and not terminally revoked.
def:spaceBindingViewmanagingAppstringyesnomaxLength:512Exact ATM DID service identifier associated with this pinned alpha profile.
def:spaceBindingViewprotocolProfilestringyesnomaxLength:256Pinned alpha profile, ATM overlay schema-set fingerprint, and key/data epoch governing this binding.
def:spaceBindingViewrevisionintegeryesnominimum:1Monotonic append-only revision for this exact space URI.
money.atmosphere.temp.membership.registerSpace4 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputspacestringyesnomaxLength:1600Creator-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.
inputenvironmentstring<test | live>yesnomaxLength:8The 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.
inputprogramref:com.atproto.repo.strongRefyesnononeExact creator-owned money.atmosphere.membership.program record.
inputtierref:com.atproto.repo.strongRefnonononeOptional 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
LocationFieldTypeRequiredNullableLimitsDescription
inputspacestringyesnomaxLength:1600Creator-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.
money.atmosphere.test.agreement.acceptance13 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordofferref:com.atproto.repo.strongRefyesnononeThe 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.
recordofferorstringyesnoformat:didThe DID whose repo owns the accepted offer.
recordselectionunion<#percentageSelection>yesnononeExact explicitly tagged acceptance of the matching percentage offer at its posted rate. An unknown or mismatched terms/selection pair grants no authority.
recordpolicyref:#policyyesnononeAcceptor-authored delegation and publication attenuation.
recordeffectiveFromstringnonoformat:datetimeOptional inclusive instant from which this acceptance may authorize a new occurrence.
recordexpiresAtstringnonoformat:datetimeOptional exclusive expiry instant after which this acceptance cannot authorize a new occurrence.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact published prior acceptance this one replaces, bound by AT-URI and CID.
recordcreatedAtstringyesnoformat:datetimeClient-declared instant when the acceptor authored this immutable acceptance version.
def:policyaggregateChildShareBpsintegeryesnominimum:0, maximum:10000The exact aggregate immediate-child ceiling, in basis points of this parent's gross occurrence pool, equal to the offer's childDelegation.aggregateChildShareBps, and zero under noDelegation or when delegationDepth is zero. It is repeated, not chosen: a mismatch is not an acceptance. Frozen with each occurrence; a later cap cannot reprice history. This rate ceiling does not waive carry, funding or residual checks.
def:policydelegationDepthintegeryesnominimum:0, maximum:8How many child levels the beneficiary may carve from its pool: equal to the offer's childDelegation.delegationDepth, and 0 under #noDelegation. It is repeated, not chosen. 0 means none.
def:policypublicationref:money.atmosphere.test.agreement.defs#visibilityyesnononeThe 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.
def:percentageSelectionfeeShareBpsintegeryesnominimum:0, maximum:10000The offer's exact posted rate in basis points, repeated by the acceptor and required to equal it, interpreted against the offered basis by the supported calculation profile. Cumulative lineage rounding and parent-pool funding remain separate from observed processor amounts.
def:percentageSelectionpaymentTypesarray<ref:money.atmosphere.test.agreement.defs#paymentType>yesnominLength:1, maxLength:16Explicit non-empty subset of the offer's payment types the acceptor permits. New or omitted types are not authorized.
money.atmosphere.test.agreement.aggregatePolicy9 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordscopeunion<money.atmosphere.test.agreement.defs#allOfferingsScope | money.atmosphere.test.agreement.defs#selectedOfferingsScope>yesnononeExplicit 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.
recordaggregateMaxFeeShareBpsintegeryesnominimum:0, maximum:10000Percentage root-rate ceiling per applicable offering and occurrence. Sum every applicable root's exact accepted rate, which equals its posted offer rate. Under the purchase-groups profile the common denominator is merchandise after discounts, excluding shipping and tax. This is not a routing-cost or fixed-expense budget; independent monetary burden, funding and residual guards still apply. 100 equals 1%.
recordchildDelegationDepthintegeryesnominimum:0, maximum:8Creator default for the maximum child-delegation depth a root beneficiary may exercise. 0 means none. An offer the creator accepts may not exceed it.
recordcompilerPolicyVersionstringyesnominLength:1, maxLength:64Version 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.
recordvisibilityref:money.atmosphere.test.agreement.defs#visibilitynonononePublication policy for this standing policy itself. Public-beta admission requires explicit public visibility; omission or an unsupported value grants no public admission or publication authority. This field does not identify agreement participants or enforce private access. Future permissioned readership requires a separately reviewed Spaces profile; existing private evidence is not retroactively published.
recordeffectiveFromstringnonoformat:datetimeRequested 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.
recordexpiresAtstringnonoformat:datetimeNo description in lexicon yet.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact published current policy tip this one replaces. It must resolve to the same creator repo and financial namespace. A foreign, cross-namespace, ancestor, or otherwise non-tip predecessor is invalid; a superseded tip never reopens after deletion or replay, and competing branches fail closed.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.test.agreement.beneficiaryRefusal7 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordbeneficiarystringyesnoformat:didThe 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.
recordscopeunion<money.atmosphere.test.agreement.defs#allOfferingsScope | money.atmosphere.test.agreement.defs#selectedOfferingsScope>yesnononeExplicit 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.
recordstatestring<refused | withdrawn>yesnomaxLength:16refused creates or continues the refusal for this creator/namespace/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.
recordvisibilityref:money.atmosphere.test.agreement.defs#visibilitynonononePublication policy for this refusal itself. Public-beta admission requires explicit public visibility; omission or an unsupported value grants no public admission or publication authority. The author and beneficiary identify the affected parties independently of readership. Future private access requires a separately reviewed Spaces profile. Existing private refusal evidence remains private and cannot be retroactively published.
recordeffectiveFromstringnonoformat:datetimeRequested 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.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact published prior refusal version this one replaces, bound by AT-URI and CID. It must resolve to the same creator repo, financial namespace, and beneficiary; a foreign, cross-namespace, ancestor, or otherwise non-tip predecessor is invalid, and competing branches fail closed.
recordcreatedAtstringyesnoformat:datetimeClient-declared instant when the creator authored this immutable refusal version.
money.atmosphere.test.agreement.brokerTerms10 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordpoliciesarray<ref:#policy>yesnominLength:1, maxLength:8Complete set of policies this version discloses, one per agreement, in ascending agreement order. An omitted agreement is not implicitly retained from a previous version.
recordtextstringnonomaxLength:200000, maxGraphemes:20000Optional human-readable explanation of the same policies. It never overrides a generated entry; a version that changes only this text keeps identical entries.
recordeffectiveFromstringyesnoformat:datetimeInclusive instant from which the broker applies this version to newly admitted occurrences. An occurrence keeps the version frozen for it at admission; this instant never rebinds an earlier occurrence and is not evidence of any party's consent.
recordpreviousref:com.atproto.repo.strongRefnonononeThe exact prior version this one supersedes, bound by AT-URI and CID. Absent only on the first version. Versions are immutable; a change is always a new record.
recordcreatedAtstringyesnoformat:datetimeBroker-declared instant when this version was authored; not evidence of any party's consent.
def:policyagreementstring<atm_commission_refund_policy | atm_payee_cost_policy | atm_app_fee_payout_hold | atm_platform_leg_release>yesnomaxLength:64Private agreement identifier the policy version belongs to, matching the identifier parties accept privately. A value a verifier does not recognize discloses nothing it may rely on.
def:policyversionstringyesnomaxLength:64Exact policy version identifier, for example atm-commission-refund-v1. It names a closed rule set kept forever in the broker's version registry; retired versions remain decodable.
def:policyrulesarray<ref:#rule>yesnominLength:1, maxLength:32Generated key/value projection of the private rule definition, in canonical key order. A hold policy is stated as its formula (anchor, minimum days, which declared restriction survives), never as an evaluated per-occurrence day count.
def:rulekeystringyesnominLength:1, maxLength:64Rule name from the private definition.
def:rulevaluestringyesnominLength:1, maxLength:256Rule value from the private definition, as its canonical string.
money.atmosphere.test.agreement.defs11 fields
LocationFieldTypeRequiredNullableLimitsDescription
def:paymentTypevalueref:#paymentTypeValueyesnononePayment type selected by this array item. The object wrapper permits future per-type attenuation without changing the array element shape.
def:surfaceauthoritystringyesnoformat:didDID 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:surfaceidstringyesnominLength:1, maxLength:512Surface 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:roleSelectionroleref:#roleyesnononeChild role permitted by this item. A future reviewed compiler must explicitly allowlist supported roles and fail closed on unknown values.
def:currencyAmountamountMinorintegeryesnominimum:0, maximum:9007199254740991Non-negative amount in the currency's smallest integral unit.
def:currencyAmountcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code for the commercial currency. Native tokens require a separate asset/network/atomic-amount union variant.
def:assetAmountamountAtomicstringyesnominLength:1, maxLength:78Canonical 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 and the amended payment-v1 receipt value domain both permit canonical zero; their complete record validation and settlement/publication authority requirements remain separate.
def:assetAmountassetstringyesnominLength:11, maxLength:179Exact 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:offeringSelectionsubjectref:com.atproto.repo.strongRefyesnononeExact published catalog record this item selects.
def:appCatalogScopeappstringyesnoformat:didThe exact beneficiary app of the enrolled root agreement. The creator deliberately delegates catalog enrollment to this app; an app-supplied identifier alone grants nothing.
def:selectedOfferingsScopeofferingsarray<ref:money.atmosphere.test.agreement.defs#offeringSelection>yesnominLength:1, maxLength:64Exact 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.test.agreement.offer28 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordroleref:money.atmosphere.test.agreement.defs#roleyesnononeWhat the beneficiary provides: checkout hosts the buyer-facing transaction surface; service provides recurring member-facing or backend services; discovery supplies an attributed referral; fulfillment delivers the product; infrastructure supports execution. A role describes work and attribution, not identity, funding position or an implicit fee entitlement. Funding is selected separately. Implementations must explicitly support the chosen role.
recordbeneficiaryPartyref:money.atmosphere.test.agreement.defs#beneficiaryPartyyesnononeWhich 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.
recordcounterpartystringnonoformat:didThe 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.
recordfundingunion<#recipientProceedsFunding | #parentAgreementFunding>yesnononeOpen 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.
recordscoperef:#scopeyesnononeEnvironment, payment-type, offering, and surface boundary for these terms.
recordtermsunion<#percentageTerms>yesnononeOpen tagged economic terms, initially the percentage branch only. A future fixed or quoted compensation branch needs its own reviewed authority and does not inherit percentage-required fields. Unknown branches refuse.
recordtriggerref:money.atmosphere.test.agreement.defs#triggeryesnononeWhat earns the share: a settled occurrence, an attributed settled sale, or a qualifying settled scheduled period while authority remains effective. Attributed sale is exclusive per group, immediate funding pool and role; unconditional obligations stack. Zero discounted periods can qualify; retries, trials, failed invoices and prorations do not invent periods.
recordattributionref:#attributionnonononeOptional 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.
recorddelegationunion<#noDelegation | #childDelegation>yesnononeOpen 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.
recordvisibilityref:money.atmosphere.test.agreement.defs#visibilityyesnononePublication 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.
recordeffectiveFromstringnonoformat:datetimeOptional inclusive instant from which this offer may be accepted and compiled.
recordexpiresAtstringnonoformat:datetimeOptional exclusive expiry instant after which this offer cannot authorize a new occurrence.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact published prior offer version this one replaces, bound by AT-URI and CID.
recordcreatedAtstringyesnoformat:datetimeClient-declared instant when the offeror authored this immutable offer version.
def:parentAgreementFundingparentref:com.atproto.repo.strongRefyesnononeThe 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:parentAgreementFundingparentAcceptanceref:com.atproto.repo.strongRefyesnononeThe 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:scoperailsarray<string<stripe-connect | tempo>>nonominLength:1, maxLength:16Optional exact rail restriction. Omission means every rail the compiler supports; a present list admits only its named supported rails. A child may narrow but never broaden its parent's restriction. Unknown rails grant no execution authority. tempo is a reserved later execution capability, not enabled by this declaration.
def:scopepaymentTypesarray<ref:money.atmosphere.test.agreement.defs#paymentType>yesnominLength:1, maxLength:16Explicit 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:scopeofferingsarray<ref:com.atproto.repo.strongRef>nonominLength:1, maxLength:64Exact catalog records (product, membership program or tier, ticketed event) the terms are limited to.
def:scopesurfacesarray<ref:money.atmosphere.test.agreement.defs#surface>nonominLength:1, maxLength:16Optional 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:childDelegationaggregateChildShareBpsintegeryesnominimum:0, maximum:10000Exact aggregate immediate-child share in basis points of this parent's gross occurrence pool, not the sale or an ancestor pool. The acceptance records this same exact value. It is a budget across all immediate children, and each child offer must fit within it. Admission budgets all unconditional child rates plus one maximum per exclusive attributed role; occurrence compilation checks represented selected rates before rounding, including on a zero pool. Descendants have separate parent ceilings. No omission default or implicit authority for unseen children.
def:childDelegationdelegationDepthintegeryesnominimum:1, maximum:8Exact number of descendant funding hops permitted below this agreement; the acceptance records this same value.
def:childDelegationrolesarray<ref:money.atmosphere.test.agreement.defs#roleSelection>yesnominLength:1, maxLength:8Child roles the beneficiary may fund.
def:attributionconversionWindowSecondsintegernonominimum:1, maximum:31536000How 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:attributionrecurringTailunion<#tailCycleCount | #tailAgreementLifetime>nonononeOpen 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:tailCycleCountcyclesintegeryesnominimum:1, maximum:1200Maximum qualifying settled scheduled periods, including fully discounted zero periods, once per authenticated relationship/period. Failed or unsettled invoices, trials, duplicate deliveries, prorations, refunds, payout installments and pauses do not add periods; cadence changes do not reset the count. Ambiguous period attribution refuses. Three qualifying free periods can exhaust a three-period term.
def:percentageTermsbasisref:money.atmosphere.test.agreement.defs#basisyesnononenet-merchandise applies to recipientProceedsFunding and excludes attributed shipping and tax after subtracting merchandise discounts. parent-pool applies to parentAgreementFunding and names the exact immediate parent gross percentage pool, not incoming carry or the whole sale. Historical commissionable-gross and unsupported bases refuse.
def:percentageTermsfeeShareBpsintegeryesnominimum:0, maximum:10000Exact share of the named basis, in basis points, that the offeror posts. The acceptance records this same exact value; a lower or higher rate is a different offer version, never a selection.
money.atmosphere.test.agreement.revocation3 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordsubjectref:com.atproto.repo.strongRefyesnononeThe 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.test.agreement.offer or money.atmosphere.test.agreement.acceptance, and the exact CID/body must be independently verified.
recordeffectiveAtstringnonoformat:datetimeOptional 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.
recordcreatedAtstringyesnoformat:datetimeClient-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.test.agreement.rootEnablement9 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordstatestring<enabled | revoked>yesnomaxLength:16enabled creates an initial enrollment or explicitly replaces the current enabled scope within the same creator/namespace/exact-acceptance lineage. revoked is a non-expiring terminal withdrawal of that entire enrollment; it must supersede the exact current tip, retain its scope, and omit paymentTypes and expiresAt. A product-specific removal is an explicit enabled scope replacement, not a terminal revocation. No successor may reopen a revoked lineage.
recordacceptanceref:com.atproto.repo.strongRefyesnononeThe 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.
recordscopeunion<money.atmosphere.test.agreement.defs#appCatalogScope | money.atmosphere.test.agreement.defs#selectedOfferingsScope>yesnononeExplicit enrollment scope. appCatalogScope delegates current and future app-catalog membership within the accepted terms; selectedOfferingsScope binds exact creator-owned URI/CID selections and never silently acquires material-equivalent matching. Omission, an empty selection, an unknown variant or an unsupported constraint authorizes no execution. Later selector semantics require a newly authored opt-in variant; old records retain their meaning. Both variants belong to the same enrollment lifecycle and cannot coexist as independent tips for one acceptance.
recordpaymentTypesarray<ref:money.atmosphere.test.agreement.defs#paymentType>nonominLength:1, maxLength:16Optional non-empty payment-type narrowing under the acceptance and selected scope 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.
recordvisibilityref:money.atmosphere.test.agreement.defs#visibilitynonononePublication policy for this enrollment decision itself. Public-beta admission requires explicit public visibility; omission or an unsupported value grants no public admission or publication authority. 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 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. Participants remain identified by authenticated authorship and references, not this field; future private readership requires a separately reviewed Spaces profile.
recordeffectiveFromstringnonoformat:datetimeRequested 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.
recordexpiresAtstringnonoformat:datetimeOptional end for an enabled decision only. state=revoked must omit expiresAt: a terminal tombstone never expires or reopens its lineage.
recordsupersedesref:com.atproto.repo.strongRefnonononeThe exact prior enrollment version this one replaces, bound by URI and CID to retained authenticated evidence in the authorized venue. It must resolve to the exact current tip with the same creator, financial namespace and acceptance. A scope replacement remains in that same lifecycle; a different acceptance starts a new root-enablement URI/lineage and must not supersede this one. Required when state is revoked; a terminal predecessor cannot be superseded.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
money.atmosphere.test.agreement.settlement38 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordkindstring<allocation | reversal | reinstatement>yesnomaxLength:64Allocation establishes an occurrence; reversal or reinstatement appends a signed allocation change under the named calculation policy. Cost-only adjustments are not allocation evidence.
recordpublicationstring<atm-public-beta-test-v2>yesnomaxLength:64The 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.
recordeventIdstringyesnominLength:32, maxLength:32Opaque 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.
recordpreviousref:com.atproto.repo.strongRefnonononeRequired 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.
recordproofref:com.atproto.repo.strongRefyesnononeThe exact settling-broker-authored money.atmosphere.payment.proof URI and CID. It attests its original payment occurrence and anchors the broker's authority snapshot; later recurring cycles require separate occurrence authority. Naming a broker never expands a verifier's independently configured trust policy.
recordbrokerTermsref:com.atproto.repo.strongRefnonononeOptional exact money.atmosphere.test.agreement.brokerTerms version, authored by the settling broker, under which this occurrence's cash facts must be read: commission refund handling, payee cost recovery, payout holds and the platform leg's release rule. It is the version frozen for the occurrence at admission, never the version current when settlement is authored; it is set on the allocation and equal on every compensation of the occurrence. It discloses policy and supplies no allocation or cash authority. The ATM profile requires it; another broker may settle without it.
recordexecutionunion<#processorExecution>nonononeOptional open execution-evidence union; the revision-7 pure ARA verifier rejects records carrying execution. This schema admits only the opaque processor branch; omission has processor meaning only under the currently admitted processor profile. Raw processor objects and identifiers remain private. Unknown future branches cannot authorize effects. Chain execution requires a later reviewed profile.
recordoccurrenceref:#occurrenceyesnononeNo description in lexicon yet.
recordroundingref:#roundingPolicyyesnononeThe rounding, carry, and residual policy under which every leg was computed.
recordcreatedAtstringyesnoformat:datetimeBroker-declared authoring time, not proof of a provider effect or cash delivery.
recordcalculationProfilestring<ara-allocation-purchase-groups-v3>yesnomaxLength:64Exact supported allocation calculation profile, independent of broker identity, private provider charges and execution. Under ara-allocation-purchase-groups-v3 a reversal or reinstatement recomputes the frozen agreement graph and carry grants at netBasis under the same rounding policy; there is no separate clawback identifier, and which external events reduce commission or prove cash recovery is never decided by this record. Unknown and retired cost-bearing profiles grant no authority.
recordgroupsarray<ref:#allocationGroup>yesnominLength:1, maxLength:64Complete frozen group set/order on allocation and every correction, including unchanged groups. At most 80 legs and 100 context selectors in the WHOLE record, within retained byte/work limits. Group labels never determine priority. No independent group history.
def:occurrencewitnessstring<broker | contract>nonomaxLength:64Checkout attribution witness class; the revision-7 pure ARA verifier rejects records carrying occurrence.witness. The currently admitted processor profile uses the settling broker, including when this optional field is absent. contract is reserved for a separately reviewed future profile. A payer signature or processor execution does not witness the checkout surface or authority currentness; unknown witness classes cannot authorize effects.
def:occurrencecycleAnchorAtstringnonoformat:datetimeThe exact recurring cycle anchor this occurrence settled, when the occurrence is a subscription cycle.
def:occurrencesnapshotref:#snapshotnonononeNo description in lexicon yet.
def:snapshotprofilestring<atm-settlement-occurrence-v1>yesnomaxLength:64Open 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:snapshotcommitmentstringyesnominLength:64, maxLength:64The occurrence commitment under profile: 64 lowercase hexadecimal characters.
def:legagreementref:com.atproto.repo.strongRefyesnononeExact money.atmosphere.test.agreement.acceptance URI and CID. Resolve its exact offer and funding references; funding determines root/child position.
def:legallocationref:#allocationyesnononeNo description in lexicon yet.
def:legpayoutref:#payoutnonononeReserved for chain-settled legs only and absent on every processor-settled leg; the revision-7 pure ARA verifier rejects records carrying legs[].payout. Its future interpretation requires a reviewed chain execution profile; it never exposes a connected-account mapping.
def:payoutwalletBindingref:com.atproto.repo.strongRefyesnononeExact future money.atmosphere.actor.walletBinding version selected at the occurrence anchor; the binding record is not defined or activated by this cut.
def:payoutaccountstringyesnominLength:1, maxLength:256Exact chain-qualified CAIP-10 account used by this leg. A future reviewed chain profile supplies canonical validation and historical wallet-binding verification before any claim or effect.
def:signedCurrencyAmountamountMinorintegeryesnominimum:-9007199254740991, maximum:9007199254740991Signed minor units within ±(2^53 − 1).
def:signedCurrencyAmountcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 code, exactly three letters; equals the occurrence basis currency.
def:signedAssetAmountamountAtomicstringyesnominLength:1, maxLength:79Matches ^-?(0|[1-9][0-9]{0,77})$ with -0 rejected and magnitude at most 2^256 − 1; parsed only with arbitrary precision.
def:signedAssetAmountassetstringyesnominLength:11, maxLength:179The exact network-qualified asset identifier under the same CAIP-19-compatible grammar as money.atmosphere.test.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:allocationgrossunion<#signedCurrencyAmount | #signedAssetAmount>yesnononeFloor-rounded amount from occurrence basis for a root, or immediate parent gross for a child. A compensation stores the difference between cumulative floors.
def:allocationcarryReleasedunion<#signedCurrencyAmount | #signedAssetAmount>yesnononeBeneficiary 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:allocationdelegatedOutflowunion<#signedCurrencyAmount | #signedAssetAmount>yesnononeGross plus carry allocated to immediate children, not all descendants; zero for a leaf.
def:allocationretainedAllocationunion<#signedCurrencyAmount | #signedAssetAmount>yesnononeOwn cumulative entitlement before independently accepted private payee charges, or its signed change in a compensation. Never evidence of cash delivered or recovered.
def:roundingPolicypolicystring<atm-rounding-floor-carry-v1>yesnomaxLength:64Open rounding-policy vocabulary. atm-rounding-floor-carry-v1 floors every leg, carries sub-unit remainders per beneficiary lineage, and releases carry only from a later occurrence's residual; the broker does not acquire the residue. A reversal or reinstatement recomputes the same rule at the net basis (the calculation profile's net-basis recomputation) rather than apportioning a residue. A verifier must allowlist supported values and fail closed on unknown values.
def:allocationGrouprecipientstringyesnoformat:didExact recipient scope and independently authenticated root funder. Recipient scopes in the associated payment must be unique; several future groups may select the same scope.
def:allocationGroupcontextsarray<ref:#purchaseContextSelector>nonominLength:1, maxLength:100Optional indexes into this recipient's authenticated payment purchase contexts. Full commitment preimage or authorized guest F is required to establish association; proof-only arithmetic must not pretend it established this link.
def:allocationGroupcalculationunion<#percentageCalculation>yesnononeOpen calculation union, initially percentage only. Unsupported variants have no fallback to percentage economics.
def:purchaseContextSelectorindexintegeryesnominimum:0, maximum:99Zero-based context position in the unique matching recipient scope; checked against the authenticated actual context count, not only the wire maximum.
def:percentageCalculationbasisunion<money.atmosphere.test.agreement.defs#currencyAmount | money.atmosphere.test.agreement.defs#assetAmount>yesnononeOriginal net merchandise after its accepted discounts, excluding attributed shipping, tax and pass-throughs. Frozen per group; never reconstructed from payment total or live prices.
def:percentageCalculationnetBasisunion<money.atmosphere.test.agreement.defs#currencyAmount | money.atmosphere.test.agreement.defs#assetAmount>nonononeRequired on reversal/reinstatement: policy-recognised remaining basis, from zero through original basis. Absent on allocation. A processor refund is not by itself evidence of this amount; accepted policy and exact attribution remain separate inputs. At least one group basis changes in each compensation.
def:percentageCalculationlegsarray<ref:#leg>yesnominLength:1, maxLength:80Every applied acceptance in frozen roots-then-depth-first ancestry order. Every compensation has the identical leg set in identical order, including zero deltas.

attested.network namespace

ATM consumes these schemas as an external spec. Do not publish or extend them from the ATM namespace.

NSIDKindRouteAuthStatusSummaryLinks
network.attested.payment.initiateprocedure/xrpc/network.attested.payment.initiateattested.network servicer authexternal specBegin a payment flow.
network.attested.payment.lookupqueryRetired; frozen schema onlyNo public routeretired; frozen schema onlyFrozen historical query schema retained for resolver and forensic compatibility; ATM no longer serves this method.
network.attested.payment.oneTimerecordPDSPDS recordexternal specA one-time payment from a supporter to a creator.
network.attested.payment.proofrecordPDSPDS recordexternal specA remote attestation record stored in the attestor's repository (creator or broker).
network.attested.payment.recurringrecordPDSPDS recordexternal specA recurring payment commitment.
network.attested.payment.scheduledrecordPDSPDS recordexternal specA fixed series of payments.
network.attested.payment.statusquery/xrpc/network.attested.payment.statusExact originating-app service-authexternal specCheck the status of a payment initiated via network.attested.payment.initiate.

attested.network fields

network.attested.payment.initiate3 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputproductstringyesnononeProduct identifier for the payment being initiated.
outputurlstringyesnoformat:uriURL to direct the payer to in a browser to complete the payment flow (entering payment details, confirming terms, etc).
outputtokenstringyesnononeOpaque token used to poll payment status via network.attested.payment.status.
network.attested.payment.lookup6 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramspayerstringyesnoformat:didDID of the payer (supporter).
paramsbrokersarray<string>nonononeOptional list of broker DIDs.
paramsrecipientstringyesnoformat:didDID of the recipient (creator).
paramspaymentTypestring<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled>nonoformat:nsidOptional filter by payment collection.
paramsentitlementsarray<string>nonononeOptional list of entitlement AT-URIs.
outputpaymentsarray<union<network.attested.payment.oneTime | network.attested.payment.recurring | network.attested.payment.scheduled>>yesnononeList of verified payment records.
network.attested.payment.oneTime8 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordmemostringnonomaxLength:1024, maxGraphemes:256Optional note from the supporter.
recordtxnidstringyesnomaxLength:64Unique transaction identifier for deduplication.
recordamountintegeryesnominimum:1Payment amount in the smallest unit of the given currency (e.g.
recordsubjectstringyesnoformat:didDID of the creator receiving payment.
recordcurrencystringyesnominLength:3, maxLength:3ISO 4217 currency code (e.g.
recordcreatedAtstringyesnoformat:datetimeTimestamp of record creation.
recordsignaturesarray<ref:com.atproto.repo.strongRef>nonononeAttestation entries.
recordentitlementsarray<ref:com.atproto.repo.strongRef>nonononeOptional 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
LocationFieldTypeRequiredNullableLimitsDescription
recordcidstringyesnoformat:cidAttestation CID computed per the badge.blue spec from the payment record, metadata, and repository DID.
recordstatusstringnonononeOptional status indicator for the attestation (implementation-defined).
network.attested.payment.recurring9 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordunitstring<monthly | quarterly | semiannual | yearly>yesnononeBilling period.
recordtxnidstringyesnomaxLength:64Unique transaction identifier for deduplication.
recordamountintegeryesnominimum:1Amount per billing period in the smallest unit of the given currency.
recordsubjectstringyesnoformat:didDID of the creator receiving payment.
recordcurrencystringyesnominLength:3, maxLength:3ISO 4217 currency code (e.g.
recordcreatedAtstringyesnoformat:datetimeTimestamp of initial subscription creation.
recordfrequencyintegernonominimum:1Billing frequency multiplier applied to the unit (e.g.
recordsignaturesarray<ref:com.atproto.repo.strongRef>nonononeAttestation entries.
recordentitlementsarray<ref:com.atproto.repo.strongRef>nonononeOptional 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
LocationFieldTypeRequiredNullableLimitsDescription
recordunitstring<monthly | quarterly | semiannual | yearly>yesnononeInterval between scheduled payments.
recordcountintegeryesnominimum:2, maximum:60Total number of scheduled payments.
recordtxnidstringyesnomaxLength:64Unique transaction identifier for deduplication.
recordamountintegeryesnominimum:1Amount per payment in the smallest unit of the given currency.
recordsubjectstringyesnoformat:didDID of the creator receiving payment.
recordcurrencystringyesnominLength:3, maxLength:3ISO 4217 currency code (e.g.
recordcreatedAtstringyesnoformat:datetimeTimestamp of schedule creation; also the first payment date.
recordsignaturesarray<ref:com.atproto.repo.strongRef>nonononeAttestation entries.
recordentitlementsarray<ref:com.atproto.repo.strongRef>nonononeOptional 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
LocationFieldTypeRequiredNullableLimitsDescription
paramstokenstringyesnononeToken returned from network.attested.payment.initiate.
outputrefref:com.atproto.repo.strongRefnonononePresent when status is 'completed'.
outputstatusstring<pending | completed | failed>yesnononeCurrent 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.

NSIDKindRouteAuthStatusSummaryLinks
tickets.atmosphere.acceptCollaborationprocedure/xrpc/tickets.atmosphere.acceptCollaborationService-authbeta draftAccept a pending co-organizer invitation (dual-consent: app service-auth plus the co-organizer's own assertion).
tickets.atmosphere.archiveTicketTypeprocedure/xrpc/tickets.atmosphere.archiveTicketTypeService-authbeta draftArchive an organizer-owned ATM ticket type.
tickets.atmosphere.cancelTicketEventprocedure/xrpc/tickets.atmosphere.cancelTicketEventService-authbeta draftIrreversibly cancel an ATM ticketed event.
tickets.atmosphere.checkInListrecordPDSPDS recordbeta draftPublic check-in list label for an event.
tickets.atmosphere.checkInTicketprocedure/xrpc/tickets.atmosphere.checkInTicketService-authbeta draftVerify and check in a private ATM Tickets scan token.
tickets.atmosphere.claimFreeTicketprocedure/xrpc/tickets.atmosphere.claimFreeTicketService-authbeta draftAtomically claim zero-price scarce tickets for a verified buyer without checkout redirect.
tickets.atmosphere.claimWaitlistOfferprocedure/xrpc/tickets.atmosphere.claimWaitlistOfferService-authbeta draftClaim a ticket waitlist OFFER by starting checkout against its already-reserved offer hold.
tickets.atmosphere.createTicketEventprocedure/xrpc/tickets.atmosphere.createTicketEventService-authbeta draftCreate or upsert an organizer-owned ATM ticketed-event config shell for a public event.
tickets.atmosphere.createTicketHoldprocedure/xrpc/tickets.atmosphere.createTicketHoldService-authbeta draftAtomically reserve ticket capacity and return an ATM checkout URL.
tickets.atmosphere.createTicketTypeprocedure/xrpc/tickets.atmosphere.createTicketTypeService-authbeta draftCreate an organizer-owned ATM ticket type and optional public ticket-type record refs for an event.
tickets.atmosphere.defsdefs/xrpc/tickets.atmosphere.defsApp service-authbeta draftNo description in lexicon yet.
tickets.atmosphere.getTicketAvailabilityquery/xrpc/tickets.atmosphere.getTicketAvailabilityService-authbeta draftRead app-scoped ticket availability derived from private ATM holds and issued tickets.
tickets.atmosphere.inviteOrganizerCollaborationprocedure/xrpc/tickets.atmosphere.inviteOrganizerCollaborationService-authbeta draftInvite a co-organizer to operationally co-run a ticketed event (Part A: operational delegation only).
tickets.atmosphere.joinWaitlistprocedure/xrpc/tickets.atmosphere.joinWaitlistService-authbeta draftJoin the FIFO waitlist for a sold-out ticket type.
tickets.atmosphere.listBuyerTicketsquery/xrpc/tickets.atmosphere.listBuyerTicketsService-authbeta draftList app-scoped issued tickets for a buyer or payment.
tickets.atmosphere.listCollaborationsprocedure/xrpc/tickets.atmosphere.listCollaborationsPublic or app-scoped readbeta draftList organizer collaborations for an event (authorized via event control) or the calling co-organizer's own collaboration rows.
tickets.atmosphere.listEventWaitlistprocedure/xrpc/tickets.atmosphere.listEventWaitlistPublic or app-scoped readbeta draftList 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.listOrganizerTicketsquery/xrpc/tickets.atmosphere.listOrganizerTicketsService-authbeta draftList app-scoped issued tickets for an organizer or event.
tickets.atmosphere.listPublicConfigquery/xrpc/tickets.atmosphere.listPublicConfigPublic or app-scoped readbeta draftList indexed public tickets.atmosphere ticket config records.
tickets.atmosphere.listTicketFormResponsesprocedure/xrpc/tickets.atmosphere.listTicketFormResponsesPublic or app-scoped readbeta draftList the full private attendee form responses for an organizer's own event.
tickets.atmosphere.releaseFreeTicketprocedure/xrpc/tickets.atmosphere.releaseFreeTicketService-authbeta draftRelease a buyer's free-claim tickets back to capacity — the inverse of claimFreeTicket for un-RSVP flows.
tickets.atmosphere.releaseTicketHoldprocedure/xrpc/tickets.atmosphere.releaseTicketHoldService-authbeta draftRelease an active ticket hold before checkout completes.
tickets.atmosphere.revokeCollaborationprocedure/xrpc/tickets.atmosphere.revokeCollaborationService-authbeta draftRevoke a co-organizer collaboration.
tickets.atmosphere.setEventCapacityprocedure/xrpc/tickets.atmosphere.setEventCapacityService-authbeta draftSet, 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.setTicketTypeFormprocedure/xrpc/tickets.atmosphere.setTicketTypeFormApp service-authbeta draftSet (or clear) the private per-ticket-type attendee form for a ticketed event.
tickets.atmosphere.ticketedEventrecordPDSPDS recordbeta draftOrganizer-published ticketing anchor for an event: marks the event as ticketed and optionally discloses its ticket types in display order.
tickets.atmosphere.ticketTyperecordPDSPDS recordbeta draftOrganizer-owned portable ticket type metadata for an AT Protocol event.
tickets.atmosphere.updateTicketEventprocedure/xrpc/tickets.atmosphere.updateTicketEventService-authbeta draftUpdate an app-scoped ATM ticketed-event config shell for a public event.
tickets.atmosphere.updateTicketTypeprocedure/xrpc/tickets.atmosphere.updateTicketTypeService-authbeta draftUpdate organizer-owned ATM ticket type metadata.
tickets.atmosphere.verifyTicketprocedure/xrpc/tickets.atmosphere.verifyTicketService-authbeta draftVerify a private ATM Tickets scan token without mutating check-in state.

Tickets fields

tickets.atmosphere.acceptCollaboration5 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputcollaborationIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputcoOrganizerDidstringyesnoformat:didThe accepting co-organizer.
inputcoOrganizerAssertionJwtstringyesnomaxLength:8192REQUIRED short-lived user service-auth JWT issued BY coOrganizerDid to ATM, scoped to tickets.atmosphere.acceptCollaboration.
outputcollaborationref:tickets.atmosphere.defs#organizerCollaborationyesnononeNo description in lexicon yet.
tickets.atmosphere.archiveTicketType7 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputticketTypeIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputorganizerDidstringnonoformat:didThe current primary organizer authorizing this mutation.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional only for an app archiving its own event's ticket type.
outputticketTyperef:#ticketTypeyesnononeNo description in lexicon yet.
def:ticketTypeidstringyesnomaxLength:300No description in lexicon yet.
def:ticketTypestatusstring<archived>yesnomaxLength:32No description in lexicon yet.
tickets.atmosphere.cancelTicketEvent13 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputorganizerDidstringnonoformat:didThe current primary organizer authorizing cancellation.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional only for an app canceling its own event.
inputreasonstringyesnominLength:3, maxLength:10000, maxGraphemes:1000No description in lexicon yet.
outputcancellationref:#cancellationyesnononeNo description in lexicon yet.
def:cancellationidstringyesnomaxLength:300No description in lexicon yet.
def:cancellationeventIdstringyesnomaxLength:300No description in lexicon yet.
def:cancellationstatusstring<requested | already-canceled>yesnomaxLength:32No description in lexicon yet.
def:cancellationticketCountintegeryesnominimum:0No description in lexicon yet.
def:cancellationpaidTicketCountintegeryesnominimum:0No description in lexicon yet.
def:cancellationfreeTicketCountintegeryesnominimum:0No description in lexicon yet.
def:cancellationreleasedHoldCountintegeryesnominimum:0No description in lexicon yet.
tickets.atmosphere.checkInList5 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordeventref:com.atproto.repo.strongRefyesnononeCID-pinned strongRef to the canonical public community.lexicon.calendar.event record.
recordnamestringyesnominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
recordarchivedbooleannonononeTrue when this check-in list is archived.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
recordupdatedAtstringnonoformat:datetimeNo description in lexicon yet.
tickets.atmosphere.checkInTicket8 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputticketTokenstringyesnominLength:1, maxLength:4000No description in lexicon yet.
inputcheckInListIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputscannerDidstringnonoformat:didApp-asserted staff DID recorded in the private check-in audit log.
inputmetadataunknownnonononeNo description in lexicon yet.
outputstatusstring<checked-in | already-checked-in | not-valid>yesnomaxLength:32No description in lexicon yet.
outputcheckedInAtstringnonoformat:datetimeNo description in lexicon yet.
outputticketref:tickets.atmosphere.defs#issuedTicketnonononeNo description in lexicon yet.
tickets.atmosphere.claimFreeTicket18 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputeventUristringnonoformat:at-uriNo description in lexicon yet.
inputbuyerDidstringyesnoformat:didNo description in lexicon yet.
inputbuyerAssertionJwtstringyesnomaxLength:8192Required short-lived user service-auth JWT from buyerDid to ATM, scoped to tickets.atmosphere.claimFreeTicket.
inputcustomerEmailstringnonomaxLength:320Required delivery address for every new free-ticket claim.
inputcustomerNamestringnonominLength:1, maxLength:300Private attendee display name supplied by the buyer/app.
inputeventCodestringnonominLength:3, maxLength:64Preferred buyer-entered event code.
inputitemsarray<ref:tickets.atmosphere.defs#ticketHoldItemRequest>yesnominLength:1, maxLength:20No description in lexicon yet.
inputaccessCodestringnonominLength:3, maxLength:64Legacy visibility-only input.
inputidempotencyKeystringnonominLength:1, maxLength:200No description in lexicon yet.
inputmetadataunknownnonononeNo description in lexicon yet.
outputclaimIdstringyesnomaxLength:300No description in lexicon yet.
outputholdIdstringyesnomaxLength:300No description in lexicon yet.
outputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
outputitemsarray<ref:tickets.atmosphere.defs#ticketHoldItem>yesnominLength:1, maxLength:20No description in lexicon yet.
outputticketsarray<ref:tickets.atmosphere.defs#issuedTicketWithContext>yesnominLength:1, maxLength:1000No description in lexicon yet.
outputreusedbooleannonononeNo description in lexicon yet.
tickets.atmosphere.claimWaitlistOffer17 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputwaitlistIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputbuyerDidstringnonoformat:didNo description in lexicon yet.
inputbuyerAssertionJwtstringnonomaxLength:8192Required whenever buyerDid is supplied: a short-lived user service-auth JWT from buyerDid to ATM, scoped to tickets.atmosphere.claimWaitlistOffer.
inputcustomerEmailstringnonomaxLength:320Private delivery/receipt hint.
inputcustomerNamestringnonominLength:1, maxLength:300Private attendee name for the issued ticket.
inputreturnUrlstringnonoformat:uriNo description in lexicon yet.
inputcancelUrlstringnonoformat:uriNo description in lexicon yet.
outputwaitlistIdstringyesnomaxLength:300No description in lexicon yet.
outputholdIdstringyesnomaxLength:300No description in lexicon yet.
outputstatusTokenstringyesnomaxLength:500Stable app-only capability for authenticated payment-status polling; persist it before redirecting and never place it in a browser URL.
outputtokenstringyesnomaxLength:500Rotatable browser checkout bearer; prefer url for navigation and never persist it as the payment-status capability.
outputurlstringyesnoformat:uriATM browser checkout URL whose embedded bearer may be retired when the payer changes accounts.
outputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
outputexpiresAtstringyesnoformat:datetimeNo description in lexicon yet.
outputamountintegeryesnominimum:0No description in lexicon yet.
outputcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code matching money.atmosphere.price.
tickets.atmosphere.createTicketEvent8 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputorganizerDidstringyesnoformat:didNo description in lexicon yet.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.createTicketEvent.
inputeventref:tickets.atmosphere.defs#eventInputyesnononeNo description in lexicon yet.
inputstatusstring<active | paused | archived>nonomaxLength:32ATM ticket-sales lifecycle state.
inputeventCapacityintegernonominimum:1, maximum:250000Optional creation-time convenience for tickets.atmosphere.setEventCapacity: the shared capacity every ticket type of this event draws from.
inputmetadataunknownnonononeNo description in lexicon yet.
outputeventref:tickets.atmosphere.defs#eventSummaryyesnononeNo description in lexicon yet.
tickets.atmosphere.createTicketHold26 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputeventUristringnonoformat:at-uriNo description in lexicon yet.
inputbuyerDidstringnonoformat:didSigned-in buyer DID.
inputbuyerAssertionJwtstringnonomaxLength:8192Short-lived user service-auth JWT from buyerDid to ATM, scoped to lxm money.atmosphere.payment.assertPayer.
inputpayerBindingstring<switchable | fixed>nonomaxLength:32Defaults to fixed when buyerDid and a matching verified buyerAssertionJwt are supplied; otherwise defaults to switchable.
inputcustomerEmailstringnonomaxLength:320Private delivery/receipt hint for ticket emails.
inputcustomerNamestringnonominLength:1, maxLength:300Private attendee display name supplied by the buyer/app.
inputeventCodestringnonominLength:3, maxLength:64Preferred buyer-entered event code.
inputofferCodestringnonominLength:3, maxLength:64Legacy discount-only input.
inputaccessCodestringnonominLength:3, maxLength:64Legacy visibility-only input.
inputitemsarray<ref:tickets.atmosphere.defs#ticketHoldItemRequest>yesnominLength:1, maxLength:20No description in lexicon yet.
inputreturnUrlstringnonoformat:uriNo description in lexicon yet.
inputcancelUrlstringnonoformat:uriNo description in lexicon yet.
inputidempotencyKeystringnonominLength:1, maxLength:200No description in lexicon yet.
inputmetadataunknownnonononeNo description in lexicon yet.
outputholdIdstringyesnomaxLength:300No description in lexicon yet.
outputstatusTokenstringyesnomaxLength:500Stable app-only capability for authenticated payment-status polling; persist it before redirecting and never place it in a browser URL.
outputtokenstringyesnomaxLength:500Rotatable browser checkout bearer; prefer url for navigation and never persist it as the payment-status capability.
outputurlstringyesnoformat:uriATM browser checkout URL whose embedded bearer may be retired when the payer changes accounts.
outputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
outputexpiresAtstringyesnoformat:datetimeNo description in lexicon yet.
outputamountintegeryesnominimum:0Final buyer checkout amount in minor units after any order-level offer and passed-through ATM ticket fee.
outputcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code matching money.atmosphere.price.
outputitemsarray<ref:tickets.atmosphere.defs#ticketHoldItem>yesnominLength:1, maxLength:20No description in lexicon yet.
outputreusedbooleannonononeNo description in lexicon yet.
tickets.atmosphere.createTicketType19 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputorganizerDidstringyesnoformat:didNo description in lexicon yet.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.createTicketType.
inputeventref:tickets.atmosphere.defs#eventInputyesnononeNo description in lexicon yet.
inputtitlestringyesnominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
inputdescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
inputcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code matching money.atmosphere.price.
inputunitAmountintegeryesnominimum:0, maximum:2000000Amount in the smallest unit of currency.
inputmaxPerOrderintegernonominimum:1, maximum:50No description in lexicon yet.
inputsaleStartsAtstringnonoformat:datetimeNo description in lexicon yet.
inputsaleEndsAtstringnonoformat:datetimeNo description in lexicon yet.
inputticketTypeRefref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
inputproductref:com.atproto.repo.strongRefnonononeExact current organizer-owned money.atmosphere.product with kind=ticket.
inputdefaultPriceref:com.atproto.repo.strongRefnonononeLegacy direct-Price compatibility only.
inputmetadataunknownnonononeNo description in lexicon yet.
inputvisibilitystring<public | hidden>nonomaxLength:16Private buyer-facing visibility (default public).
inputquantityTotalintegernonominimum:1, maximum:250000Optional per-type cap.
outputeventref:tickets.atmosphere.defs#eventSummaryyesnononeNo description in lexicon yet.
outputticketTyperef:tickets.atmosphere.defs#ticketTypeSummaryyesnononeNo description in lexicon yet.
tickets.atmosphere.defs109 fields
LocationFieldTypeRequiredNullableLimitsDescription
def:eventInputuristringyesnoformat:at-uriAT URI of the canonical public community.lexicon.calendar.event record.
def:eventInputcidstringnonoformat:cidCID of the exact public event record revision represented by this snapshot.
def:eventInputtitlestringyesnominLength:1, maxLength:3000, maxGraphemes:300No description in lexicon yet.
def:eventInputstartsAtstringnonoformat:datetimeNo description in lexicon yet.
def:eventInputimageUrlstringnonoformat:uriNo description in lexicon yet.
def:ticketHoldItemRequestticketTypeIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
def:ticketHoldItemRequestquantityintegeryesnominimum:1, maximum:50No description in lexicon yet.
def:ticketHoldItemticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketHoldItemtitlestringyesnomaxLength:1000, maxGraphemes:100No description in lexicon yet.
def:ticketHoldItemquantityintegeryesnominimum:1, maximum:50No description in lexicon yet.
def:ticketHoldItemunitAmountintegeryesnominimum:0No description in lexicon yet.
def:ticketHoldItemcurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code matching money.atmosphere.price.
def:ticketHoldItemticketTypeRefref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:ticketHoldItemdefaultPriceref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:ticketTypeSummaryidstringyesnomaxLength:300No description in lexicon yet.
def:ticketTypeSummaryeventIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketTypeSummarytitlestringyesnomaxLength:1000, maxGraphemes:100No description in lexicon yet.
def:ticketTypeSummaryquantityTotalintegernonominimum:1, maximum:250000The type's own configured cap.
def:ticketTypeSummarycurrencystringyesnominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code matching money.atmosphere.price.
def:ticketTypeSummaryunitAmountintegeryesnominimum:0No description in lexicon yet.
def:ticketTypeSummarystatusstring<active | paused | archived>yesnomaxLength:32No description in lexicon yet.
def:ticketTypeSummaryticketTypeRefref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:ticketTypeSummaryproductref:com.atproto.repo.strongRefnonononeThe canonical kind=ticket money.atmosphere.product this ticket type points at, when one is attached.
def:ticketTypeSummarydefaultPriceref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:eventSummaryidstringyesnomaxLength:300ATM's private identifier for this ticketed-event config.
def:eventSummaryuristringyesnoformat:at-uriAT URI of the canonical public event record.
def:eventSummarycidstringnonoformat:cidCID of the exact public event record revision, when known.
def:eventSummaryeventRefref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:eventSummarytitlestringnonomaxLength:3000, maxGraphemes:300No description in lexicon yet.
def:eventSummarystartsAtstringnonoformat:datetimeNo description in lexicon yet.
def:eventSummarymanageUrlstringnonoformat:uriCurrent ATM organizer-console locator for this canonical event.
def:eventSummaryscannerUrlstringnonoformat:uriStable first-party ATM scanner locator for this canonical event.
def:organizerCollaborationidstringyesnomaxLength:300No description in lexicon yet.
def:organizerCollaborationeventIdstringyesnomaxLength:300No description in lexicon yet.
def:organizerCollaborationprimaryOrganizerDidstringyesnoformat:didNo description in lexicon yet.
def:organizerCollaborationcoOrganizerDidstringyesnoformat:didNo description in lexicon yet.
def:organizerCollaborationrolestring<co-organizer>yesnomaxLength:32No description in lexicon yet.
def:organizerCollaborationstatusstring<pending | accepted | revoked>yesnomaxLength:16No description in lexicon yet.
def:organizerCollaborationrevenueShareBpsintegernonominimum:0, maximum:10000Recorded revenue-share INTENT in basis points, for MANUAL RECONCILIATION ONLY.
def:organizerCollaborationinvitedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:organizerCollaborationacceptedAtstringnonoformat:datetimeNo description in lexicon yet.
def:organizerCollaborationrevokedAtstringnonoformat:datetimeNo description in lexicon yet.
def:ticketAvailabilityticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
def:ticketAvailabilityeventIdstringnonomaxLength:300No description in lexicon yet.
def:ticketAvailabilitytitlestringyesnomaxLength:1000, maxGraphemes:100No description in lexicon yet.
def:ticketAvailabilitydescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
def:ticketAvailabilitycurrencystringnonominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code matching money.atmosphere.price.
def:ticketAvailabilityunitAmountintegernonominimum:0No description in lexicon yet.
def:ticketAvailabilitystatusstring<available | sold-out | not-on-sale | hidden | unavailable>yesnomaxLength:32No description in lexicon yet.
def:ticketAvailabilityvisibilitystring<hidden>nonomaxLength:16Present only for hidden ticket types revealed by the caller's access code, so an app can tell which entries the code unlocked.
def:ticketAvailabilityavailableQuantityintegernonominimum:0Effective availability (min across the type's capacity pools).
def:ticketAvailabilityquantityTotalintegernonominimum:1, maximum:250000The type's OWN configured cap, for 'X of Y left' display.
def:ticketAvailabilityheldQuantityintegernonominimum:0Quantity currently reserved by active holds.
def:ticketAvailabilitysoldQuantityintegernonominimum:0Quantity already issued/sold.
def:ticketAvailabilitymaxPerOrderintegeryesnominimum:1, maximum:50No description in lexicon yet.
def:ticketAvailabilitysaleStartsAtstringnonoformat:datetimeNo description in lexicon yet.
def:ticketAvailabilitysaleEndsAtstringnonoformat:datetimeNo description in lexicon yet.
def:ticketPresentationiconUrlstringnonoformat:uriPass icon URL.
def:ticketPresentationqrref:#ticketPresentationQryesnononeNo description in lexicon yet.
def:ticketPresentationappref:tickets.atmosphere.defs#brandyesnononeNo description in lexicon yet.
def:ticketPresentationorganizerref:tickets.atmosphere.defs#brandyesnononeNo description in lexicon yet.
def:ticketPresentationeventref:#ticketPresentationEventyesnononeNo description in lexicon yet.
def:ticketPresentationticketTyperef:#ticketPresentationTicketTypeyesnononeNo description in lexicon yet.
def:branddidstringyesnoformat:didNo description in lexicon yet.
def:brandhandlestringnonoformat:handleNo description in lexicon yet.
def:brandnamestringyesnomaxLength:300No description in lexicon yet.
def:brandavatarUrlstringnonoformat:uriNo description in lexicon yet.
def:issuedTicketidstringyesnomaxLength:300No description in lexicon yet.
def:issuedTicketeventIdstringyesnomaxLength:300No description in lexicon yet.
def:issuedTicketticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
def:issuedTicketpaymentIdstringnonomaxLength:300No description in lexicon yet.
def:issuedTicketclaimIdstringnonomaxLength:300No description in lexicon yet.
def:issuedTicketenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
def:issuedTicketownerDidstringnonoformat:didNo description in lexicon yet.
def:issuedTicketstatusstring<active | voided | refunded>yesnomaxLength:32No description in lexicon yet.
def:issuedTicketticketNumberstringyesnomaxLength:300No description in lexicon yet.
def:issuedTicketeventRefref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:issuedTicketticketTypeRefref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:issuedTicketdefaultPriceref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:issuedTicketscanTokenstringnonomaxLength:4000Private scan token returned only to authorized clients.
def:issuedTicketscanUrlstringnonoformat:uriNo description in lexicon yet.
def:issuedTicketcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:issuedTicketupdatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:issuedTicketWithContextidstringyesnomaxLength:300No description in lexicon yet.
def:issuedTicketWithContexteventIdstringyesnomaxLength:300No description in lexicon yet.
def:issuedTicketWithContextticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
def:issuedTicketWithContextpaymentIdstringnonomaxLength:300No description in lexicon yet.
def:issuedTicketWithContextclaimIdstringnonomaxLength:300No description in lexicon yet.
def:issuedTicketWithContextenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
def:issuedTicketWithContextownerDidstringnonoformat:didNo description in lexicon yet.
def:issuedTicketWithContextstatusstring<active | voided | refunded>yesnomaxLength:32No description in lexicon yet.
def:issuedTicketWithContextticketNumberstringyesnomaxLength:300No description in lexicon yet.
def:issuedTicketWithContexteventRefref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:issuedTicketWithContextticketTypeRefref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:issuedTicketWithContextdefaultPriceref:com.atproto.repo.strongRefnonononeNo description in lexicon yet.
def:issuedTicketWithContextscanTokenstringnonomaxLength:4000No description in lexicon yet.
def:issuedTicketWithContextscanUrlstringnonoformat:uriNo description in lexicon yet.
def:issuedTicketWithContextcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:issuedTicketWithContextupdatedAtstringyesnoformat:datetimeNo description in lexicon yet.
def:issuedTicketWithContextpresentationref:tickets.atmosphere.defs#ticketPresentationnonononeNo description in lexicon yet.
def:issuedTicketWithContexteventref:tickets.atmosphere.defs#eventSummarynonononeNo description in lexicon yet.
def:issuedTicketWithContextticketTyperef:tickets.atmosphere.defs#ticketTypeSummarynonononeNo description in lexicon yet.
def:ticketPresentationQrenabledbooleanyesnononeNo description in lexicon yet.
def:ticketPresentationQrlabelstringyesnomaxLength:100No description in lexicon yet.
def:ticketPresentationEventuristringyesnoformat:at-uriAT URI of the canonical public event record.
def:ticketPresentationEventtitlestringyesnomaxLength:3000, maxGraphemes:300No description in lexicon yet.
def:ticketPresentationEventstartsAtstringnonoformat:datetimeNo description in lexicon yet.
def:ticketPresentationEventimageUrlstringnonoformat:uriNo description in lexicon yet.
def:ticketPresentationTicketTypetitlestringyesnomaxLength:1000, maxGraphemes:100No description in lexicon yet.
tickets.atmosphere.getTicketAvailability7 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
paramseventIdstringnonominLength:1, maxLength:300No description in lexicon yet.
paramseventUristringnonoformat:at-uriNo description in lexicon yet.
paramseventCodestringnonominLength:3, maxLength:64Preferred buyer-entered event code.
paramsaccessCodestringnonominLength:3, maxLength:64Legacy visibility-only input.
outputeventref:tickets.atmosphere.defs#eventSummarynonononeNo description in lexicon yet.
outputticketTypesarray<ref:tickets.atmosphere.defs#ticketAvailability>yesnomaxLength:250No description in lexicon yet.
tickets.atmosphere.inviteOrganizerCollaboration8 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputeventUristringnonoformat:at-uriNo description in lexicon yet.
inputorganizerDidstringyesnoformat:didThe inviting PRIMARY organizer (or an already-accepted co-organizer) authorizing this invite.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.inviteOrganizerCollaboration.
inputcoOrganizerDidstringyesnoformat:didThe DID being invited to co-organize the event.
inputrevenueShareBpsintegernonominimum:0, maximum:10000OPTIONAL recorded revenue-share INTENT in basis points (0..10000), for MANUAL RECONCILIATION ONLY between the primary organizer and the co-organizer.
outputcollaborationref:tickets.atmosphere.defs#organizerCollaborationyesnononeNo description in lexicon yet.
tickets.atmosphere.joinWaitlist15 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputeventUristringnonoformat:at-uriNo description in lexicon yet.
inputticketTypeIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputbuyerDidstringnonoformat:didNo description in lexicon yet.
inputbuyerAssertionJwtstringnonomaxLength:8192Required whenever buyerDid is supplied: a short-lived user service-auth JWT from buyerDid to ATM, scoped to tickets.atmosphere.joinWaitlist.
inputcustomerEmailstringnonomaxLength:320Private delivery hint for the offer email.
inputquantityintegernonominimum:1, maximum:50No description in lexicon yet.
outputwaitlistIdstringyesnomaxLength:300No description in lexicon yet.
outputstatusstring<waiting | offered | claimed | expired | released>yesnomaxLength:16No description in lexicon yet.
outputpositionintegeryesnominimum:0No description in lexicon yet.
outputquantityintegeryesnominimum:1No description in lexicon yet.
outputeventIdstringyesnomaxLength:300No description in lexicon yet.
outputticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
outputreusedbooleannonononeNo description in lexicon yet.
tickets.atmosphere.listBuyerTickets7 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
paramsbuyerstringnonoformat:at-identifierDID or handle of the ticket owner.
paramspaymentIdstringnonominLength:1, maxLength:300No description in lexicon yet.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputticketsarray<ref:tickets.atmosphere.defs#issuedTicketWithContext>yesnomaxLength:100No description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
tickets.atmosphere.listCollaborations10 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputorganizerDidstringnonoformat:didWhen listing an event's collaborations, the requesting organizer (verified via event control).
inputorganizerAssertionJwtstringnonomaxLength:8192No description in lexicon yet.
inputcoOrganizerDidstringnonoformat:didWhen listing a co-organizer's OWN collaborations, their DID (verified via coOrganizerAssertionJwt).
inputcoOrganizerAssertionJwtstringnonomaxLength:8192No description in lexicon yet.
inputlimitintegernonominimum:1, maximum:250No description in lexicon yet.
inputcursorstringnonomaxLength:1024No description in lexicon yet.
outputcollaborationsarray<ref:tickets.atmosphere.defs#organizerCollaboration>yesnomaxLength:250No description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
tickets.atmosphere.listEventWaitlist30 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputorganizerDidstringyesnoformat:didNo description in lexicon yet.
inputorganizerAssertionJwtstringnonomaxLength:8192No description in lexicon yet.
inputticketTypeIdstringnonominLength:1, maxLength:300Filter the queue to one ticket type.
inputincludeTerminalbooleannonononeInclude terminal (claimed/expired/released) rows in the queue page.
inputlimitintegernonominimum:1, maximum:250No description in lexicon yet.
inputcursorstringnonomaxLength:1024No description in lexicon yet.
outputsummariesarray<ref:#waitlistSummary>yesnomaxLength:1000No description in lexicon yet.
outputentriesarray<ref:#waitlistEntry>yesnomaxLength:250No description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:waitlistSummaryeventIdstringyesnomaxLength:300No description in lexicon yet.
def:waitlistSummaryticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
def:waitlistSummaryticketTypeTitlestringyesnomaxLength:200No description in lexicon yet.
def:waitlistSummaryactiveCountintegeryesnominimum:0No description in lexicon yet.
def:waitlistSummarywaitingCountintegeryesnominimum:0No description in lexicon yet.
def:waitlistSummaryofferedCountintegeryesnominimum:0No description in lexicon yet.
def:waitlistSummaryactiveQuantityintegeryesnominimum:0No description in lexicon yet.
def:waitlistEntrywaitlistIdstringyesnomaxLength:300No description in lexicon yet.
def:waitlistEntryeventIdstringyesnomaxLength:300No description in lexicon yet.
def:waitlistEntryticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
def:waitlistEntrypositionintegeryesnominimum:0No description in lexicon yet.
def:waitlistEntryquantityintegeryesnominimum:1No description in lexicon yet.
def:waitlistEntrystatusstring<waiting | offered | claimed | expired | released>yesnomaxLength:16No description in lexicon yet.
def:waitlistEntrybuyerDidstringnonoformat:didNo description in lexicon yet.
def:waitlistEntrycustomerEmailHintstringnonomaxLength:200No description in lexicon yet.
def:waitlistEntryofferHoldIdstringnonomaxLength:300No description in lexicon yet.
def:waitlistEntryofferedAtstringnonoformat:datetimeNo description in lexicon yet.
def:waitlistEntryofferExpiresAtstringnonoformat:datetimeNo description in lexicon yet.
def:waitlistEntrycreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
tickets.atmosphere.listOrganizerTickets7 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
paramsorganizerstringnonoformat:at-identifierDID or handle of the ticket organizer.
paramseventIdstringnonominLength:1, maxLength:300No description in lexicon yet.
paramslimitintegernonominimum:1, maximum:250No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputticketsarray<ref:tickets.atmosphere.defs#issuedTicketWithContext>yesnomaxLength:250No description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
tickets.atmosphere.listPublicConfig30 fields
LocationFieldTypeRequiredNullableLimitsDescription
paramsorganizerstringyesnoformat:at-identifierDID or handle of the organizer.
paramseventUristringnonoformat:at-uriNo description in lexicon yet.
paramscollectionsarray<string<tickets.atmosphere.ticketType | tickets.atmosphere.ticketedEvent>>nonomaxLength:3No description in lexicon yet.
paramsincludeArchivedbooleannonononeNo description in lexicon yet.
paramslimitintegernonominimum:1, maximum:100No description in lexicon yet.
paramscursorstringnonomaxLength:1024No description in lexicon yet.
outputrecordsarray<ref:#publicConfigRecord>yesnononeNo description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:publicConfigRecorduristringyesnoformat:at-uriAT URI of the indexed ticket config record.
def:publicConfigRecordcidstringyesnoformat:cidCID of the exact indexed ticket config record revision.
def:publicConfigRecordorganizerstringyesnoformat:didDID of the organizer repository containing the record.
def:publicConfigRecordcollectionstring<tickets.atmosphere.ticketType | tickets.atmosphere.ticketedEvent>yesnoformat:nsidNSID of the indexed ticket config record collection.
def:publicConfigRecordrkeystringyesnoformat:record-keyRepository record key of the indexed ticket config record.
def:publicConfigRecordeventref:com.atproto.repo.strongRefyesnononeCID-pinned strongRef to the public event this ticket config describes.
def:publicConfigRecordtitlestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
def:publicConfigRecorddescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
def:publicConfigRecordcurrencystringnonominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code matching money.atmosphere.price.
def:publicConfigRecordunitAmountintegernonominimum:0No description in lexicon yet.
def:publicConfigRecordquantityTotalintegernonominimum:1, maximum:250000Display hint from the ticketType record.
def:publicConfigRecordmaxPerOrderintegernonominimum:1, maximum:50No description in lexicon yet.
def:publicConfigRecorddefaultPriceref:com.atproto.repo.strongRefnonononeCID-pinned strongRef to the ticket type's current money.atmosphere.price, when published.
def:publicConfigRecordsaleStartsAtstringnonoformat:datetimeNo description in lexicon yet.
def:publicConfigRecordsaleEndsAtstringnonoformat:datetimeNo description in lexicon yet.
def:publicConfigRecordticketTypesarray<ref:com.atproto.repo.strongRef>nonomaxLength:250Display-ordered CID-pinned strongRefs advertised by a ticketed-event record.
def:publicConfigRecordstartsAtstringnonoformat:datetimeNo description in lexicon yet.
def:publicConfigRecordendsAtstringnonoformat:datetimeNo description in lexicon yet.
def:publicConfigRecordarchivedbooleanyesnononeNo description in lexicon yet.
def:publicConfigRecordcreatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:publicConfigRecordupdatedAtstringnonoformat:datetimeNo description in lexicon yet.
def:publicConfigRecordindexedAtstringyesnoformat:datetimeWhen the AppView indexed this public ticket config record.
tickets.atmosphere.listTicketFormResponses16 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputorganizerDidstringyesnoformat:didNo description in lexicon yet.
inputorganizerAssertionJwtstringnonomaxLength:8192No description in lexicon yet.
inputticketTypeIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputticketIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputlimitintegernonominimum:1, maximum:250No description in lexicon yet.
inputcursorstringnonomaxLength:1024No description in lexicon yet.
outputresponsesarray<ref:#formResponse>yesnomaxLength:250No description in lexicon yet.
outputcursorstringnonomaxLength:1024No description in lexicon yet.
def:formResponseticketIdstringyesnomaxLength:300No description in lexicon yet.
def:formResponseticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
def:formResponsefieldKeystringyesnomaxLength:64No description in lexicon yet.
def:formResponsevaluestringyesnomaxLength:2000No description in lexicon yet.
def:formResponseshowAtCheckInbooleanyesnononeNo description in lexicon yet.
def:formResponsecreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
tickets.atmosphere.releaseFreeTicket10 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputeventUristringnonoformat:at-uriNo description in lexicon yet.
inputbuyerDidstringyesnoformat:didNo description in lexicon yet.
inputbuyerAssertionJwtstringyesnomaxLength:8192Required short-lived user service-auth JWT from buyerDid to ATM, scoped to tickets.atmosphere.releaseFreeTicket.
inputidempotencyKeystringyesnominLength:1, maxLength:200Caller-stable identity for this release gesture.
inputticketIdsarray<string>nonomaxLength:50Optional 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.
outputenvironmentstring<test | live>yesnomaxLength:16No description in lexicon yet.
outputreleasedCountintegeryesnominimum:0Authoritative 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.
outputreleasedTicketIdsarray<string>yesnomaxLength:1000Ids of the released tickets, truncated to the first 1000 — compare against releasedCount to detect truncation.
tickets.atmosphere.releaseTicketHold6 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputholdIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputreasonstringnonomaxLength:200No description in lexicon yet.
outputholdref:#holdyesnononeNo description in lexicon yet.
def:holdidstringyesnomaxLength:300No description in lexicon yet.
def:holdstatusstring<released | expired | failed | completed>yesnomaxLength:32No description in lexicon yet.
tickets.atmosphere.revokeCollaboration5 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputcollaborationIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputorganizerDidstringyesnoformat:didThe revoking PRIMARY organizer (or accepted co-organizer) authorizing this revocation via event control.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.revokeCollaboration.
outputcollaborationref:tickets.atmosphere.defs#organizerCollaborationyesnononeNo description in lexicon yet.
tickets.atmosphere.setEventCapacity11 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringnonominLength:1, maxLength:300No description in lexicon yet.
inputeventUristringnonoformat:at-uriNo description in lexicon yet.
inputorganizerDidstringnonoformat:didThe current primary organizer authorizing this mutation.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional only for an app updating its own event.
inputcapacityintegernonominimum:1, maximum:250000Total tickets across ALL ticket types of the event.
inputunlimitedbooleannonononetrue clears the event capacity (unlimited — the default posture for new events).
outputeventIdstringyesnomaxLength:300No description in lexicon yet.
outputcapacityintegernonominimum:1, maximum:250000The event capacity now in effect.
outputsoldQuantityintegeryesnominimum:0No description in lexicon yet.
outputheldQuantityintegeryesnominimum:0No description in lexicon yet.
tickets.atmosphere.setTicketTypeForm16 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputticketTypeIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputorganizerDidstringyesnoformat:didNo description in lexicon yet.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional short-lived user service-auth JWT from organizerDid to ATM, scoped to tickets.atmosphere.setTicketTypeForm.
inputformref:#formnoyesnoneNo description in lexicon yet.
outputticketTypeIdstringyesnomaxLength:300No description in lexicon yet.
outputfieldCountintegeryesnominimum:0No description in lexicon yet.
def:formversionintegeryesnominimum:1Form schema version.
def:formfieldsarray<ref:#formField>yesnomaxLength:30No description in lexicon yet.
def:formFieldkeystringyesnominLength:1, maxLength:64No description in lexicon yet.
def:formFieldlabelstringyesnominLength:1, maxLength:200No description in lexicon yet.
def:formFielddescriptionstringnonomaxLength:1000Optional buyer-facing help text shown below the question.
def:formFieldtypestring<text | textarea | email | select | checkbox | boolean | number>yesnomaxLength:16No description in lexicon yet.
def:formFieldrequiredbooleannonononeNo description in lexicon yet.
def:formFieldshowAtCheckInbooleannonononeShow this answer at check-in.
def:formFieldoptionsarray<string>nonomaxLength:50Choice values for select fields; each string is both the stored value and the display label.
tickets.atmosphere.ticketedEvent7 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordeventref:com.atproto.repo.strongRefyesnononeCID-pinned strongRef to the canonical public community.lexicon.calendar.event record.
recordticketTypesarray<ref:com.atproto.repo.strongRef>nonomaxLength:250Display-ordered CID-pinned strongRefs to the ticket types this record publicly advertises.
recordtitlestringnonomaxLength:1000, maxGraphemes:100No description in lexicon yet.
recorddescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
recordarchivedbooleannonononeTrue when this ticketed-event anchor is archived.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
recordupdatedAtstringnonoformat:datetimeNo description in lexicon yet.
tickets.atmosphere.ticketType15 fields
LocationFieldTypeRequiredNullableLimitsDescription
recordeventref:com.atproto.repo.strongRefyesnononeCID-pinned strongRef to the canonical public community.lexicon.calendar.event record.
recordtitlestringyesnominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
recorddescriptionstringnonomaxLength:10000, maxGraphemes:1000No description in lexicon yet.
recordcurrencystringnonominLength:3, maxLength:3Deprecated display copy retained for readers of early records; canonical pricing belongs on the money.atmosphere.price referenced by defaultPrice.
recordunitAmountintegernonominimum:0Deprecated display copy retained for readers of early records; canonical pricing belongs on the money.atmosphere.price referenced by defaultPrice.
recordquantityTotalintegernonominimum:1, maximum:250000Display hint: the type's configured cap.
recordmaxPerOrderintegernonominimum:1, maximum:50Organizer-configured per-order limit for this ticket type.
recordproductref:com.atproto.repo.strongRefnonononeOptional CID-pinned strongRef to the canonical money.atmosphere.product with kind=ticket for this ticket type in the organizer repo.
recorddefaultPriceref:com.atproto.repo.strongRefnonononeOptional CID-pinned strongRef to the current money.atmosphere.price for this ticket type in the organizer repo.
recordsaleStartsAtstringnonoformat:datetimeNo description in lexicon yet.
recordsaleEndsAtstringnonoformat:datetimeNo description in lexicon yet.
recordarchivedbooleannonononeTrue when this ticket type is archived.
recordarchivedAtstringnonoformat:datetimeNo description in lexicon yet.
recordcreatedAtstringyesnoformat:datetimeNo description in lexicon yet.
recordupdatedAtstringnonoformat:datetimeNo description in lexicon yet.
tickets.atmosphere.updateTicketEvent11 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputeventIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputorganizerDidstringnonoformat:didThe primary organizer or accepted co-organizer authorizing this mutation.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional only for an app updating its own event.
inputtitlestringnonominLength:1, maxLength:3000, maxGraphemes:300No description in lexicon yet.
inputstartsAtstringnoyesformat:datetimeNo description in lexicon yet.
inputeventCidstringnoyesformat:cidNo description in lexicon yet.
inputimageUrlstringnoyesformat:uriNo description in lexicon yet.
inputstatusstring<active | paused | archived>nonomaxLength:32ATM ticket-sales lifecycle state.
inputmetadataunknownnonononeNo description in lexicon yet.
outputeventref:tickets.atmosphere.defs#eventSummaryyesnononeNo description in lexicon yet.
tickets.atmosphere.updateTicketType20 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputticketTypeIdstringyesnominLength:1, maxLength:300No description in lexicon yet.
inputorganizerDidstringnonoformat:didThe primary organizer or accepted co-organizer authorizing this mutation.
inputorganizerAssertionJwtstringnonomaxLength:8192Optional only for an app updating its own event.
inputtitlestringnonominLength:1, maxLength:1000, maxGraphemes:100No description in lexicon yet.
inputdescriptionstringnoyesmaxLength:10000, maxGraphemes:1000No description in lexicon yet.
inputcurrencystringnonominLength:3, maxLength:3Lowercase ISO 4217 alphabetic code matching money.atmosphere.price.
inputunitAmountintegernonominimum:0, maximum:2000000Amount in the smallest unit of currency.
inputmaxPerOrderintegernonominimum:1, maximum:50No description in lexicon yet.
inputsaleStartsAtstringnoyesformat:datetimeNo description in lexicon yet.
inputsaleEndsAtstringnoyesformat:datetimeNo description in lexicon yet.
inputticketTypeRefref:com.atproto.repo.strongRefnoyesnoneNo description in lexicon yet.
inputproductref:com.atproto.repo.strongRefnonononeExact current organizer-owned money.atmosphere.product with kind=ticket.
inputdefaultPriceref:com.atproto.repo.strongRefnoyesnoneLegacy direct-Price compatibility only.
inputmetadataunknownnonononeNo description in lexicon yet.
inputvisibilitystring<public | hidden>nonomaxLength:16Private buyer-facing visibility (default public).
inputquantityTotalintegernonominimum:1, maximum:250000Set the per-type cap.
inputunlimitedbooleannonononetrue clears the per-type cap (unlimited).
inputstatusstring<active | paused | archived>nonomaxLength:32No description in lexicon yet.
outputticketTyperef:tickets.atmosphere.defs#ticketTypeSummaryyesnononeNo description in lexicon yet.
tickets.atmosphere.verifyTicket8 fields
LocationFieldTypeRequiredNullableLimitsDescription
inputenvironmentstring<test | live>nonomaxLength:16No description in lexicon yet.
inputticketTokenstringyesnominLength:1, maxLength:4000No description in lexicon yet.
outputvalidbooleanyesnononeNo description in lexicon yet.
outputreasonstringnonomaxLength:100No description in lexicon yet.
outputticketref:tickets.atmosphere.defs#issuedTicketnonononeNo description in lexicon yet.
outputpresentationref:tickets.atmosphere.defs#ticketPresentationnonononeNo description in lexicon yet.
outputeventref:tickets.atmosphere.defs#eventSummarynonononeNo description in lexicon yet.
outputticketTyperef:tickets.atmosphere.defs#ticketTypeSummarynonononeNo 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.
shell
npm run docs:check

Public 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.