{
  "format": "epv-procurement-1",
  "name": "epv",
  "release": "epv-public-affairs-2026.10.18.1",
  "access": "Public discovery and authorised invoice requests. Private order readback requires its bearer token.",
  "catalogue": "/api/v1/public-affairs-offers",
  "contract": "/openapi.json",
  "human_request": "/begin/",
  "human_selection": "/engagements/",
  "custom_enquiry": "/start-a-matter/",
  "request_form_template": "/begin/?service={service}",
  "request_forms": {
    "matter": "/begin/?service=matter",
    "installation": "/begin/?service=installation",
    "desk": "/begin/?service=desk"
  },
  "form_steps": [
    "Choose one service",
    "Provide the business question and billing details",
    "Alex confirms suitability, included records, available start date and total",
    "Private invoice",
    "Verified payment and delivery"
  ],
  "form_selection": "Choose one catalogue service first. Missing, unknown or ambiguous service selection never chooses a default.",
  "terms": "/terms/",
  "privacy": "/privacy/",
  "seller": "Data Vision IT Services Inc.",
  "currency": "CAD",
  "billing_countries": [
    "CA",
    "US"
  ],
  "service_terms_version": "epv-public-affairs-2026.10.18.1",
  "service_payment_mode": "invoice_only",
  "invoice_request_only": true,
  "human_confirmation": {
    "required_before_payment_instructions": true,
    "responsible_person": "Alex Pustovoyt",
    "fields": [
      "answerable_question",
      "included_records",
      "fixed_deadline",
      "available_start_date",
      "applicable_tax",
      "exact_total"
    ]
  },
  "engagement_parameters": {
    "matter": {
      "duration": "5 B.C. business days after verified payment and written records-complete confirmation",
      "limits": {
        "jurisdictions": 1,
        "official_source_pages": 3,
        "supplied_records": 10,
        "supplied_pages_total": 30,
        "clarification_rounds": 1
      },
      "example": "/willow-brief/",
      "enquiry": "/start-a-matter/?service=matter"
    },
    "installation": {
      "duration": "Individual invoice stages and dates",
      "limits": {
        "firms": 1,
        "authorised_people": 5,
        "matter_records": 3,
        "digital_assets": 12,
        "official_source_pages": 12,
        "configuration_corrections": 3,
        "recovery_exercises": 1
      },
      "prerequisites": [
        "Supported owner-controlled device and operating system",
        "Written access approvals",
        "Recorded acceptance checks"
      ],
      "example": "/office/",
      "enquiry": "/start-a-matter/?service=installation"
    },
    "desk": {
      "duration": "One named calendar month; no automatic renewal",
      "limits": {
        "active_matters": 3,
        "official_source_pages": 12,
        "operator_hours": 20
      },
      "timezone": "America/Vancouver",
      "business_days": "B.C. business days excluding B.C. statutory holidays",
      "unused_hours": "Expire at month end",
      "additional_work": "Routine work pauses at 20 hours until written approval",
      "example": "/operated-week/",
      "enquiry": "/start-a-matter/?service=desk"
    }
  },
  "authority": "Obtain the buyer's explicit authority to commission this scope and disclose its business billing details. Payment instructions require separate authority to accept the exact invoice; no endpoint transfers money.",
  "billing_rule": "Use the contracting business address most closely connected with this service. Other locations, special exemptions or a different tax treatment require an individual invoice. Never invent an address or buyer identity.",
  "workflow": [
    {
      "step": "Discover",
      "method": "GET",
      "path": "/api/v1/public-affairs-offers",
      "instruction": "Read the scope, base fee, exclusions and current service_terms_version. Installation is optional for a suitable existing monthly workflow."
    },
    {
      "step": "Quote",
      "method": "POST",
      "path": "/api/v1/quotes",
      "instruction": "Submit the authorised scope with the actual question, jurisdiction, general records outline, fixed deadline if any, and current service_terms_version. Retain quote_id, quote_token and returned transaction terms_version. The quote lasts 30 minutes; its total is unknown before billing."
    },
    {
      "step": "Request invoice",
      "method": "POST",
      "path": "/api/v1/orders",
      "instruction": "Copy the organisation into name; supply its work email, billing details, quote credentials, transaction terms and consent with a unique Idempotency-Key. Preserve the exact body and key until the result is known."
    },
    {
      "step": "Read back",
      "method": "GET",
      "path": "/api/v1/orders/{order_id}",
      "instruction": "Use the bearer from the private order_url fragment. Keep it out of logs, query strings and shared output. Verify the organisation, scope, status, seller and full issued invoice."
    },
    {
      "step": "Fit and invoice",
      "instruction": "Alex confirms the actual question, included records, fixed deadline, available start date, applicable tax and total before payment instructions are issued. Every current request receives an individual CAD invoice. Read amounts and dates from that invoice, not the base fee or a null top-level total. Saving a request does not reserve a start date."
    },
    {
      "step": "Payment instructions",
      "method": "POST",
      "path": "/api/v1/orders/{order_id}/interac",
      "instruction": "Only with separate buyer authority and invoice_payment_available=true, submit the exact invoice_id and consent:true. This confirms available capacity and retains the approved bank instructions. It does not initiate a bank transfer or confirm payment. Identical acceptance returns the retained instructions."
    },
    {
      "step": "Receipt",
      "method": "GET",
      "path": "/api/v1/orders/{order_id}",
      "instruction": "The owner checks the actual business bank ledger. A receipt is recorded only after that verification. Sending money, an email notification and awaiting_bank_verification are not paid receipts. A refunded record retains its original receipt; read fulfilment and payment_instructions_status too."
    },
    {
      "step": "Complete agreed records",
      "instruction": "Use the private channel agreed by Alex for authorised records. The request outline is already attached to the current scope. Do not put passwords, access codes or confidential source files in the public request. Delivery starts only after verified payment and written confirmation that the complete agreed records have arrived."
    }
  ],
  "request_effects": {
    "charges_money": false,
    "reserves_start": false,
    "starts_work": false,
    "enables_recurring_billing": false
  },
  "invoice_acceptance_effects": {
    "endpoint": "/api/v1/orders/{order_id}/interac",
    "charges_money": false,
    "initiates_bank_transfer": false,
    "confirms_paid": false,
    "reserves_available_initial_review": true,
    "body": {
      "invoice_id": "Copy the issued invoice ID",
      "consent": true
    }
  },
  "custom_enquiry_effects": {
    "endpoint": "/api/v1/epv-enquiries",
    "creates_order": false,
    "charges_money": false,
    "reserves_capacity": false,
    "fields": [
      "organisation",
      "email",
      "question"
    ],
    "receipt": "The receipt records a saved enquiry. Production queues owner alerts and one transactional acknowledgement to the sender. The acknowledgement contains the reference and response window, but does not repeat the submitted outline."
  },
  "retry": {
    "uncertain_save": "Retry the identical order or enquiry body with its same Idempotency-Key. A matching retry returns the original record, including a committed order after later terms changes.",
    "conflict": "On 409 stop and resolve the terms, expiry, state or request conflict. Never issue a fresh key to conceal an uncertain save.",
    "rate_limit": "On 429 wait at least 60 seconds. Preserve the exact key and body for an uncertain save."
  },
  "private_state": {
    "invoice": "The issued invoice is authoritative for seller, organisation, scope, tax and full CAD total.",
    "payment_instructions_status": [
      "invoice_pending",
      "seller_confirmation_required",
      "review_place_unavailable",
      "available_on_acceptance",
      "issued",
      "paid",
      "refunded",
      "request_closed",
      "payment_attempt_closed",
      "reconciliation_required"
    ],
    "receipt": "Only the recorded, verified receipt establishes payment. No client endpoint records bank settlement.",
    "delivery_clock": "Verified payment and operator-confirmed complete agreed records are both required. An outline submission does not start the clock."
  },
  "native_platform_checkout": {
    "chatgpt": false,
    "meta": false,
    "description": "Authorised browser and HTTP invoice requests are supported. Native platform checkout is not enrolled or accepted."
  },
  "historical_payments": {
    "new_contracts_eligible": false,
    "instruction": "Saved earlier contracts keep their original seller, invoice, payment method and recovery. Use the original private order link. Historical provider approvals never change a new invoice-only contract or establish a paid receipt."
  },
  "cancellation": {
    "method": "POST",
    "path": "/api/v1/orders/{order_id}/cancel",
    "requires_bearer": true,
    "body": {},
    "condition": "An unpaid request before a payment attempt, with the buyer's authority. Reconcile an existing bank instruction or other payment attempt first."
  },
  "scope_enquiries": {
    "matter": "/start-a-matter/?service=matter",
    "installation": "/start-a-matter/?service=installation",
    "desk": "/start-a-matter/?service=desk"
  },
  "result_previews": {
    "matter": "/example/",
    "installation": "/office/",
    "desk": "/operated-week/"
  }
}