TipsInteractionResult tips.interaction-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-result.v1.json

tips.interaction-result@1: one interaction on OpenVibe.Tips (tips.interaction.get, tips.simulation.run). GET /api/v1/interactions/:id → { interaction } in the reader's view (a service, the creator, or the supporter; anyone else 404 tips.interaction_not_found). POST /api/v1/simulate (201) → { interaction }: the simulated interaction (test true, settlement simulated), in the creator's view.

Fields

FieldTypeRequiredDescriptionConstraints
interactiontips.interactionyes

Examples

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

Valid: one
{
  "interaction": {
    "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"
  }
}
Rejected: list
{
  "interaction": [
    {
      "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"
    }
  ]
}

Validate

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