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 }] }