TipsInteractionCancelledPayload tips.interaction.cancelled@1
Generated at from
openvibe-contracts v0.33.0 and
openvibe-sdk v0.5.0.
- Version
- 1.0.0
- Owner
- tips
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Decision
- ADR-012
- Schema
https://openvibe.network/contracts/events/payloads/tips.interaction.cancelled.v1.json
tips.interaction.cancelled v1 (OpenVibe.Tips server/domain/interactions.js failPayment, cancelQueued). Undelivered effects were cancelled: the payment failed before settling (reason payment_failed, with the Billing error code), Billing reversed it (payment_reversed) or an effect came up while the payment was no longer settled (payment_not_settled). Envelope: subject { type: interaction, id: tint_… }, visibility internal, priority important, actor service:tips. Never emitted for tests or imports.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
interaction_id | string | yes |
| |
creator | identity.subject-ref | yes | ||
supporter | one of | yes | The supporter, null when external, anonymous or unmapped. | |
supporter_name | string | null | yes | Display name at the time. | |
kind | enum | yes |
| |
amount | integer | yes | Integer amount in currency minor units (Vibes bits). |
|
currency | string | yes | vibes-bits today. | |
settlement | enum | yes |
| |
payment_state | enum | yes |
| |
delivery_state | enum | yes |
| |
billing_txn_id | string | null | yes | The Billing transaction (txn_…) that settled it. | |
test | boolean | yes | Simulations never emit events, so false in practice. | |
reason | enum | yes |
| |
code | string | Only with reason payment_failed: the Billing problem code (billing.insufficient_funds, billing.funding_reversed, billing.refused…). |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: payment-failed
{
"interaction_id": "tint_01JAB3C4D5E6F7G8H9J0K1MNPQ",
"creator": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
},
"supporter": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
},
"supporter_name": "Generous Fan",
"kind": "tip",
"amount": 500,
"currency": "vibes-bits",
"settlement": "billing",
"payment_state": "failed",
"delivery_state": "cancelled",
"billing_txn_id": null,
"test": false,
"reason": "payment_failed",
"code": "billing.insufficient_funds"
}Valid: payment-reversed
{
"interaction_id": "tint_01JAB3C4D5E6F7G8H9J0K1MNPQ",
"creator": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
},
"supporter": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
},
"supporter_name": "Generous Fan",
"kind": "tip",
"amount": 500,
"currency": "vibes-bits",
"settlement": "billing",
"payment_state": "reversed",
"delivery_state": "cancelled",
"billing_txn_id": "txn_01JAB3C4D5E6F7G8H9J0K1MNPR",
"test": false,
"reason": "payment_reversed"
}Rejected: unknown-reason
{
"interaction_id": "tint_01JAB3C4D5E6F7G8H9J0K1MNPQ",
"creator": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
},
"supporter": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
},
"supporter_name": "Generous Fan",
"kind": "tip",
"amount": 500,
"currency": "vibes-bits",
"settlement": "billing",
"payment_state": "settled",
"delivery_state": "cancelled",
"billing_txn_id": "txn_01JAB3C4D5E6F7G8H9J0K1MNPR",
"test": false,
"reason": "creator_cancelled"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('tips.interaction.cancelled@1', value); // { valid, errors: [{ path, message }] }