TipsInteractionListResult tips.interaction-list-result@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Version
1.0.0
Owner
tips
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/tips/interaction-list-result.v1.json

tips.interaction-list-result@1: answers of tips.interaction.list on OpenVibe.Tips. GET /api/v1/interactions?creator=&supporter=&include_test=&cursor=&limit= → { interactions, next_cursor }: newest first, at most 200 a page (50 by default); a service names a creator or a supporter (422 tips.invalid_input otherwise); a person gets their own receipts, or with ?as=creator the tips they received. include_test=0 leaves simulations out. GET /api/v1/profiles/:creator/totals → { creator, totals }: derived from settled interactions; settled_via_billing is what must equal Billing's books (minus what Billing took back), external and simulations are reported apart.

Fields

This schema has no named fields.

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: page
{
  "interactions": [
    {
      "id": "tint_01JAB2C3D4E5F6G7H8J9K0MNQ5",
      "creator": {
        "type": "user",
        "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
      },
      "supporter": {
        "type": "user",
        "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
      },
      "supporter_name": "moosefan",
      "kind": "paid_message",
      "amount": 500,
      "currency": "vibes-bits",
      "message": "Great stream tonight!",
      "tts": null,
      "media": null,
      "goal_id": null,
      "funding": "credit",
      "settlement": "billing",
      "origin": "tips",
      "test": false,
      "privacy": {
        "anonymous": false,
        "hide_amount": false,
        "private_message": false
      },
      "public": {
        "interaction_id": "tint_01JAB2C3D4E5F6G7H8J9K0MNQ5",
        "kind": "paid_message",
        "amount": 500,
        "amount_hidden": false,
        "currency": "vibes-bits",
        "settlement": "billing",
        "test": false,
        "at": "2026-09-25T09:12:41.530Z",
        "supporter_name": "moosefan",
        "message": "Great stream tonight!",
        "tts": null,
        "media": null,
        "hidden": false
      },
      "erased_at": null,
      "moderation": {
        "state": "visible",
        "filtered": false,
        "at": null
      },
      "payment": {
        "state": "settled",
        "billing_txn_id": "txn_01JAB2C3D4E5F6G7H8J9K0MNQ6",
        "reversal_txn_ids": [],
        "reversed_amount": 0,
        "failure": null,
        "settled_at": "2026-09-25T09:12:41.530Z",
        "reversed_at": null
      },
      "delivery": {
        "state": "delivered",
        "delivered_at": "2026-09-25T09:12:43.004Z"
      },
      "created_at": "2026-09-25T09:12:40.118Z",
      "updated_at": "2026-09-25T09:12:43.004Z",
      "effects": [
        {
          "effect": "overlay_alert",
          "adapter": "overlay",
          "state": "delivered",
          "attempts": 1,
          "last_error": null,
          "updated_at": "2026-09-25T09:12:41.530Z"
        },
        {
          "effect": "paid_message",
          "adapter": "live-chat",
          "state": "delivered",
          "attempts": 1,
          "last_error": null,
          "updated_at": "2026-09-25T09:12:43.004Z"
        }
      ],
      "provider": null,
      "provider_ref": null,
      "legacy_source": null
    }
  ],
  "next_cursor": "WyIyMDI2LTA5LTI1VDA5OjEyOjQwLjExOFoiLCJ0aW50XzAxSkFCMkMzRDRFNUY2RzdIOEo5SzBNTlE1Il0"
}
Valid: totals
{
  "creator": {
    "type": "user",
    "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
  },
  "totals": {
    "currency": "vibes-bits",
    "settled_via_billing": 73500,
    "external": 1200,
    "interactions": 88,
    "simulations": 4,
    "pending": 1
  }
}
Rejected: no-cursor
{
  "interactions": []
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('tips.interaction-list-result@1', value);   // { valid, errors: [{ path, message }] }