CouponsCoupon coupons.coupon@1

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

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

coupons.coupon@1: one code as OpenVibe.Coupons shows it (server/domain/coupons.js view): its status and confidence come only from people's reports (counts in a window, report times rounded to the hour), a known or unknown expiry, restrictions, hints and evidence. No submitter or reporter is ever named.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
merchant_idstringyes
codestringyes
  • pattern ^[\x21-\x7E]{1,64}$
titlestringyes
descriptionstring | null
statusenumyes
  • one of "unknown", "reported_working", "reported_failed", "expired", "disabled"
activebooleanyes
confidenceany
reportsobjectyes
reports.window_daysinteger
reports.last_report_atstring | null
  • format date-time
reports.last_worked_atstring | null
  • format date-time
reports.last_failed_atstring | null
  • format date-time
expiryobjectyes
expiry.knownbooleanyes
expiry.expires_atstring | nullyes
  • format date-time
expiry.precisionstring | null
expiry.basisstring | null
restrictionsarray of objectyes
restrictions[].kindenumyes
  • one of "min_spend", "category", "new_customers_only", "region", "other"
restrictions[].valueany
restrictions[].amountstring
restrictions[].amount_minorinteger
restrictions[].currencystring
hintsarray of object
hints[].textstring
hints[].scopeenum
  • one of "code", "merchant"
evidencearray of object
evidence[].kindstring
evidence[].urlstring | null
evidence[].merchant_pageboolean
evidence[].sources_itemstring
evidence[].retrieved_atstring | null
  • format date-time
originstringyes
created_atstring | null
  • format date-time
updated_atstring | null
  • format date-time
expired_atstring | null
  • format date-time
urlstringyes

Examples

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

Valid: working
{
  "id": "cpn_01JAB2C3D4E5F6G7H8J9K0MNPR",
  "merchant_id": "mer_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "code": "FALL15",
  "title": "15% off sneakers",
  "description": null,
  "status": "reported_working",
  "active": true,
  "confidence": 0.82,
  "reports": {
    "worked": 9,
    "failed": 1,
    "window_days": 30,
    "last_report_at": "2026-09-25T17:00:00.000Z",
    "last_worked_at": "2026-09-25T17:00:00.000Z",
    "last_failed_at": "2026-09-20T09:00:00.000Z"
  },
  "expiry": {
    "known": true,
    "expires_at": "2026-10-31T23:59:59.999Z",
    "precision": "date",
    "basis": "evidence"
  },
  "restrictions": [
    {
      "kind": "min_spend",
      "amount": "$50.00",
      "amount_minor": 5000,
      "currency": "USD"
    },
    {
      "kind": "new_customers_only"
    }
  ],
  "hints": [],
  "evidence": [
    {
      "kind": "page",
      "url": "https://shoes.example.com/fall-sale",
      "merchant_page": true
    }
  ],
  "origin": "member",
  "created_at": "2026-09-20T09:00:00.000Z",
  "updated_at": "2026-09-25T17:03:00.000Z",
  "expired_at": null,
  "url": "https://openvibe.coupons/c/cpn_01JAB2C3D4E5F6G7H8J9K0MNPR"
}
Rejected: verified-status
{
  "id": "cpn_01JAB2C3D4E5F6G7H8J9K0MNPR",
  "merchant_id": "mer_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "code": "FALL15",
  "title": "15% off sneakers",
  "description": null,
  "status": "verified",
  "active": true,
  "confidence": 0.82,
  "reports": {
    "worked": 9,
    "failed": 1,
    "window_days": 30,
    "last_report_at": "2026-09-25T17:00:00.000Z",
    "last_worked_at": "2026-09-25T17:00:00.000Z",
    "last_failed_at": "2026-09-20T09:00:00.000Z"
  },
  "expiry": {
    "known": true,
    "expires_at": "2026-10-31T23:59:59.999Z",
    "precision": "date",
    "basis": "evidence"
  },
  "restrictions": [
    {
      "kind": "min_spend",
      "amount": "$50.00",
      "amount_minor": 5000,
      "currency": "USD"
    },
    {
      "kind": "new_customers_only"
    }
  ],
  "hints": [],
  "evidence": [
    {
      "kind": "page",
      "url": "https://shoes.example.com/fall-sale",
      "merchant_page": true
    }
  ],
  "origin": "member",
  "created_at": "2026-09-20T09:00:00.000Z",
  "updated_at": "2026-09-25T17:03:00.000Z",
  "expired_at": null,
  "url": "https://openvibe.coupons/c/cpn_01JAB2C3D4E5F6G7H8J9K0MNPR"
}

Validate

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