A recurring payment commitment. Immutable once created — supporters cancel and create new subscriptions to change terms. Bills on anniversary dates with automatic retry on failure.
tid
Timestamp-based ID
Properties
amount
integer
Required
Amount per billing period in the smallest unit of the given currency. Applications typically enforce a monthly-equivalent range of 500–25000.
minimum: 1createdAt
string
datetime
Required
Timestamp of initial subscription creation.
currency
string
Required
ISO 4217 currency code (e.g. USD, EUR).
maxLength: 3 bytesminLength: 3 bytesentitlements
array
of
ref
com.atproto.repo.strongRef
Optional
Optional list of strong references to records representing goods or services the payer is entitled to as a result of this payment. Referenced records may use any lexicon; their schemas are not defined by this spec.
frequency
integer
Optional
Billing frequency multiplier applied to the unit (e.g. unit=monthly, frequency=3 bills every three months).
minimum: 11signatures
array
of
ref
com.atproto.repo.strongRef
Optional
Attestation entries. Each entry is a com.atproto.repo.strongRef pointing to a network.attested.payment.proof record in a creator or broker repository.
subject
string
did
Required
DID of the creator receiving payment.
txnid
string
Required
Unique transaction identifier for deduplication. Typically a ULID or UUID assigned by the payment broker.
maxLength: 64 bytesunit
string
Required
Billing period.
monthly, quarterly, semiannual, yearlyView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"subject",
"amount",
"currency",
"unit",
"txnid",
"createdAt"
],
"properties": {
"unit": {
"type": "string",
"description": "Billing period.",
"knownValues": [
"monthly",
"quarterly",
"semiannual",
"yearly"
]
},
"txnid": {
"type": "string",
"maxLength": 64,
"description": "Unique transaction identifier for deduplication. Typically a ULID or UUID assigned by the payment broker."
},
"amount": {
"type": "integer",
"minimum": 1,
"description": "Amount per billing period in the smallest unit of the given currency. Applications typically enforce a monthly-equivalent range of 500–25000."
},
"subject": {
"type": "string",
"format": "did",
"description": "DID of the creator receiving payment."
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "ISO 4217 currency code (e.g. USD, EUR)."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Timestamp of initial subscription creation."
},
"frequency": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Billing frequency multiplier applied to the unit (e.g. unit=monthly, frequency=3 bills every three months)."
},
"signatures": {
"type": "array",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"description": "Attestation entries. Each entry is a com.atproto.repo.strongRef pointing to a network.attested.payment.proof record in a creator or broker repository."
},
"entitlements": {
"type": "array",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"description": "Optional list of strong references to records representing goods or services the payer is entitled to as a result of this payment. Referenced records may use any lexicon; their schemas are not defined by this spec."
}
}
},
"description": "A recurring payment commitment. Immutable once created — supporters cancel and create new subscriptions to change terms. Bills on anniversary dates with automatic retry on failure."
}