Subscriptions in the Fediverse

Hello, I’m working on a subscription service implementation and I’m looking for a way to represent subscription activities, namely notification about successful payment and notification about expired subscription.
Perhaps something similar has already been implemented by some other project? Should Add() and Remove() activities be used in this case?

For example, actor can have subscribers collection:

{
  "name": "Alice",
  ...
  "followers": "https://example.com/users/alice/followers",
  "subscribers": "https://example.com/users/alice/subscribers",
  ...
}

Then Add() activity will be sent to subscriber’s inbox after payment has been processed by the server:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams"
  ],
  "actor": "https://example.com/users/alice",
  "id": "https://example.com/activities/43a5e3fe-d78e-425b-9968-e3d3f71ee4e0",
  "object": "https://example.com/users/bob",
  "target": "https://example.com/users/alice/collections/subscribers",
  "type": "Add"
}

And Remove() activity will be sent to subscriber’s inbox when subscription expires:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams"
  ],
  "actor": "https://example.com/users/alice",
  "id": "https://example.com/activities/1df566b6-0568-429b-8ef7-c6c8fc6ba2f8",
  "object": "https://example.com/users/bob",
  "target": "https://example.com/users/alice/collections/subscribers",
  "type": "Remove"
}