BillingAdminResult billing.admin-result@1

Generated at from openvibe-contracts v0.114.0 and openvibe-sdk v0.35.1.

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

billing.admin-result@1: answers of billing.ledger.admin on OpenVibe.Billing. GET|POST /api/v1/admin/freeze → { frozen, reason, frozen_at, frozen_by } (POST adds processed_after_unfreeze); GET /api/v1/admin/reconcile → the reconciliation report { id, ok, trigger, started_at, finished_at, checks, warnings, totals }; POST /api/v1/admin/adjustments and POST /api/v1/purchases/settle → { transaction } (settle adds duplicate_receipt); GET /api/v1/admin/provider-events → { events }; POST …/provider-events/:id/reprocess → { event }; POST /api/v1/admin/sweep → { renewed, expired, canceled, skipped }; GET /api/v1/admin/import-holds → { holds }; GET /api/v1/usage → { records, next_cursor }.

Fields

This schema has no named fields.

Examples

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

Valid: sweep
{
  "renewed": [
    "sub_01JAB2C3D4E5F6G7H8J9K0MNPW"
  ],
  "expired": [],
  "canceled": [],
  "skipped": 0
}
Valid: unfrozen
{
  "frozen": false,
  "reason": null,
  "frozen_at": null,
  "frozen_by": null,
  "processed_after_unfreeze": {
    "processed": 2
  }
}
Valid: usage-page
{
  "records": [
    {
      "id": "1",
      "idempotency_key": "media:delivery:2",
      "project": "prj_01JAB2C3D4E5F6G7H8J9K0MNPQ",
      "subject": "user:usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
      "service": "media",
      "at": "2026-09-30T10:00:00.000Z",
      "received_at": "2026-09-30T10:00:01.000Z",
      "principal": "media",
      "reading": {
        "id": "use-2",
        "idempotency_key": "media:delivery:2",
        "service": "media",
        "project": "prj_01JAB2C3D4E5F6G7H8J9K0MNPQ",
        "subject": "user:usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
        "operation": "deliver",
        "quantity": 1.5,
        "unit": "GiB",
        "at": "2026-09-30T10:00:00Z",
        "source": "media.egress",
        "free_allowance_used": 1,
        "vibes_charged": 4
      }
    }
  ],
  "next_cursor": null
}
Rejected: bad-sweep
{
  "renewed": "all"
}

Validate

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