You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.7 KiB

slug authors status dateReceived trackingIssue discussionsTo
0ea0 silverpill <@silverpill@mitra.social> DRAFT 2023-04-18 https://codeberg.org/fediverse/fep/issues/88 https://codeberg.org/fediverse/fep/issues/88

FEP-0ea0: Payment Links

Summary

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.

History

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 Payment Links proposal.

Requirements

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.

Examples

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.

References

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.