This FEP describes a way to attach payment information to ActivityPub actors and objects. That information might be a link to donation page, a link for buying an artwork, or anything else that can be represented with a URI.
PeerTube videos may have support property, which contains a text explaining how to support the content creator.
FEP-8c3f: Web Monetization was published in 2022. The ensuing discussion on SocialHub forum led to the creation of this proposal.
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC-2119.
Payment link is an object with the following properties:
type (REQUIRED): the type MUST be Link.name (RECOMMENDED): the name property SHOULD contain a human-readable description of the payment link.href (REQUIRED): the href property MUST contain a payment URI. This can be a URL of a website, or any other kind of URI, such as ‘payto’ URI.rel (REQUIRED): the rel property MUST contain the string payment or an array containing that string. The payment relation type is defined in Link Relations Registry.Payment links MUST be added to attachment array of an actor or an object.
Payment link attached to an actor:
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://social.example/users/alice",
"inbox": "https://social.example/users/alice/inbox",
"outbox": "https://social.example/users/alice/outbox",
"attachment": [
{
"type": "Link",
"name": "Donate",
"href": "payto://iban/DE75512108001245126199",
"rel": "payment"
}
]
}
Payment link attached to an object:
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Image",
"id": "https://gallery.example/photos/123",
"attributedTo": "https://gallery.example/users/alice",
"name": "Painting of a cat",
"attachment": [
{
"type": "Link",
"name": "Buy",
"href": "https://gallery.example/photos/123/order",
"rel": [
"payment",
"https://gallery.example/ns#buy"
]
}
]
}
(This section is non-normative.)
Implementers may treat payment links attached to actor object in the same way as actor metadata fields. In that case, name translates into field label and href translates into field value.
CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
To the extent possible under law, the authors of this Fediverse Enhancement Proposal have waived all copyright and related or neighboring rights to this work.