CouponsSubmitResult coupons.submit-result@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/submit-result.v1.json

coupons.submit-result@1: the answer of POST /api/v1/coupons/submit on OpenVibe.Coupons: { coupon, merchant, duplicate, review_state } — 201 for a new code, 200 when the same code was already known (duplicate).

Fields

FieldTypeRequiredDescriptionConstraints
couponcoupons.couponyes
merchantobjectyes
merchant.idstringyes
merchant.slugstringyes
merchant.namestringyes
merchant.statusenumyes
  • one of "pending", "active", "disabled"
duplicatebooleanyes
review_statestringyes

Examples

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

Valid: new
{
  "coupon": {
    "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"
  },
  "merchant": {
    "id": "mer_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "slug": "example-shoes",
    "name": "Example Shoes",
    "status": "active"
  },
  "duplicate": false,
  "review_state": "published"
}
Rejected: partial
{
  "duplicate": false
}

Validate

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