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
{
"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.",
"key": "tid",
"record": {
"properties": {
"amount": {
"description": "Amount per billing period in the smallest unit of the given currency. Applications typically enforce a monthly-equivalent range of 500–25000.",
"minimum": 1,
"type": "integer"
},
"createdAt": {
"description": "Timestamp of initial subscription creation.",
"format": "datetime",
"type": "string"
},
"currency": {
"description": "ISO 4217 currency code (e.g. USD, EUR).",
"maxLength": 3,
"minLength": 3,
"type": "string"
},
"entitlements": {
"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.",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"type": "array"
},
"frequency": {
"default": 1,
"description": "Billing frequency multiplier applied to the unit (e.g. unit=monthly, frequency=3 bills every three months).",
"minimum": 1,
"type": "integer"
},
"signatures": {
"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.",
"items": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"type": "array"
},
"subject": {
"description": "DID of the creator receiving payment.",
"format": "did",
"type": "string"
},
"txnid": {
"description": "Unique transaction identifier for deduplication. Typically a ULID or UUID assigned by the payment broker.",
"maxLength": 64,
"type": "string"
},
"unit": {
"description": "Billing period.",
"knownValues": [
"monthly",
"quarterly",
"semiannual",
"yearly"
],
"type": "string"
}
},
"required": [
"subject",
"amount",
"currency",
"unit",
"txnid",
"createdAt"
],
"type": "object"
},
"type": "record"
}