{
  "openapi": "3.1.0",
  "info": {
    "title": "Commonstop",
    "version": "1",
    "description": "Describe containers and count basis, current and desired collection intervals, ZIP, bill and timing if known. Commonstop prepares a conditional pickup plan, seeks provider scope and pricing and replies by email with a nonbinding monthly-price proposal. Low-volume sharps can retain mailback as a comparison. Nothing is ordered or booked. Contact details are kept apart from the requirement, while we correspond or do business and for 24 months after, so a later request picks up where it left off; ask us to delete them at any time."
  },
  "servers": [
    {
      "url": "https://commonstop.forevenza.com"
    }
  ],
  "paths": {
    "/_c/request": {
      "post": {
        "operationId": "submit_request",
        "summary": "Send a requirement to Commonstop",
        "description": "Your request is recorded and you receive a reference number. Commonstop reviews the prepared requirement and open questions, confirms scope and coverage, seeks provider pricing and terms, and replies by email to the address you leave with a nonbinding monthly-price proposal. Records and manifests in your office's name are a condition of the provider proposal. Nothing is ordered or committed until you agree terms in writing. Contact details are kept apart from the requirement, while we correspond or do business and for 24 months after, so a later request picks up where it left off; ask us to delete them at any time.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "need"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "buy",
                      "source",
                      "quote",
                      "verify",
                      "lease",
                      "license",
                      "hire",
                      "retrieve",
                      "convert",
                      "other"
                    ],
                    "description": "What you want done"
                  },
                  "need": {
                    "type": "string",
                    "maxLength": 2000,
                    "description": "The requirement in your own words"
                  },
                  "specifications": {
                    "type": "object",
                    "properties": {
                      "order_key": {
                        "type": "string",
                        "description": "Draft correlation key retained through retry, not an acceptance or deduplication guarantee.",
                        "x-facet": "identifier"
                      },
                      "earlier_request_id": {
                        "type": "string",
                        "description": "Full authoritative identifier of an earlier request being revised. Keep correspondence on the same economic line.",
                        "x-facet": "identifier"
                      },
                      "practice_type": {
                        "type": "string",
                        "description": "Office practice type as stated.",
                        "x-facet": "specification"
                      },
                      "zip": {
                        "type": "string",
                        "description": "Office ZIP, not proof of county or provider coverage.",
                        "x-facet": "geography"
                      },
                      "zip_area": {
                        "type": "string",
                        "description": "Planning-list locality only, not a coverage finding.",
                        "x-facet": "geography"
                      },
                      "containers": {
                        "type": "array",
                        "description": "Reported streams with size, gallons, count, count_basis and reported fill. Quantity-only corrections retain unchanged fill and per-line bases. Never convert gallons into pounds.",
                        "x-facet": "quantity",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "Sharps or red-bag box."
                            },
                            "size": {
                              "type": "string",
                              "description": "Labelled container size."
                            },
                            "gallons": {
                              "type": "number",
                              "description": "Nominal capacity, not weight."
                            },
                            "count": {
                              "type": "number",
                              "description": "Count on this line's basis."
                            },
                            "count_basis": {
                              "type": "string",
                              "description": "pickup, monthly, installed, generation (reported fill pattern) or unknown."
                            },
                            "fill_at_pickup": {
                              "type": "string",
                              "description": "Reported fill in words."
                            },
                            "fill_percent": {
                              "type": "number",
                              "description": "Reported fill, zero means unknown."
                            }
                          }
                        }
                      },
                      "count_basis": {
                        "type": "string",
                        "description": "Fallback basis only. Mixed line bases remain separate.",
                        "x-facet": "quantity"
                      },
                      "current_method": {
                        "type": "string",
                        "description": "Current pickup, mailback or other arrangement.",
                        "x-facet": "specification"
                      },
                      "current_frequency": {
                        "type": "string",
                        "description": "Current collection interval, distinct from fill rate and requested service. Calendar month and four weeks are different.",
                        "x-facet": "timing"
                      },
                      "requested_frequency": {
                        "type": "string",
                        "description": "Requested interval, subject to suitability and availability review.",
                        "x-facet": "timing"
                      },
                      "generation_description": {
                        "type": "string",
                        "description": "Buyer-reported fill rate, distinct from current and desired collection intervals.",
                        "x-facet": "timing"
                      },
                      "weeks_to_fill": {
                        "type": "number",
                        "description": "Reported fill interval where known, not a safe storage interval.",
                        "x-facet": "timing"
                      },
                      "chosen_frequency": {
                        "type": "string",
                        "description": "Current baseline carried for provider review, not accepted service.",
                        "x-facet": "timing"
                      },
                      "recommendation_reason": {
                        "type": "string",
                        "description": "Conditional service-fit recommendation, never a fill-only scheduling instruction.",
                        "x-facet": "specification"
                      },
                      "pricing_basis": {
                        "type": "string",
                        "description": "Buyer bill basis: flat monthly, annual, pickup, container, kit or unsure.",
                        "x-facet": "budget"
                      },
                      "current_amount_usd": {
                        "type": "number",
                        "description": "Buyer-stated current charge on its source billing basis.",
                        "x-facet": "budget"
                      },
                      "price_applies_to": {
                        "type": "string",
                        "description": "Streams covered by the source unit price, unknown unless stated.",
                        "x-facet": "budget"
                      },
                      "derived_monthly_spend_usd": {
                        "type": "number",
                        "description": "Derived monthly equivalent from compatible buyer inputs, not a Commonstop price or monthly invoice.",
                        "x-facet": "budget"
                      },
                      "monthly_equivalent_formula": {
                        "type": "string",
                        "description": "Formula using compatible buyer-stated amounts and intervals; not a provider rate.",
                        "x-facet": "budget"
                      },
                      "contract_end_month": {
                        "type": "string",
                        "description": "Contract end month or unresolved statement, separate from preferred start.",
                        "x-facet": "timing"
                      },
                      "start_preference": {
                        "type": "string",
                        "description": "Current preferred timing, unconfirmed. Explicit replacements supersede earlier preferences retained in source_account history; genuinely competing instructions remain open.",
                        "x-facet": "timing"
                      },
                      "day_window": {
                        "type": "string",
                        "description": "Requested days or time window, not a booking.",
                        "x-facet": "timing"
                      },
                      "other_streams": {
                        "type": "array",
                        "description": "Explicitly excluded streams and separate arrangements to retain.",
                        "x-facet": "specification",
                        "items": {
                          "type": "string"
                        }
                      },
                      "notes": {
                        "type": "string",
                        "description": "Original account and corrections, with earlier statements retained for context.",
                        "x-facet": "specification"
                      },
                      "source_account": {
                        "type": "string",
                        "description": "Office account and correction history. Do not repeat already established facts in a new questionnaire.",
                        "x-facet": "specification"
                      },
                      "flags": {
                        "type": "array",
                        "description": "Open decisions and their owners, including count/bill clarifications and Commonstop suitability and provider work.",
                        "x-facet": "specification",
                        "items": {
                          "type": "string"
                        }
                      },
                      "office_questions": {
                        "type": "array",
                        "description": "Targeted office answers still needed, separate from Commonstop-owned provider and suitability work.",
                        "x-facet": "specification",
                        "items": {
                          "type": "string"
                        }
                      },
                      "next_work": {
                        "type": "string",
                        "description": "Concrete Commonstop-owned work to continue by email, with written acceptance and scheduling reserved to an authorized person or provider.",
                        "x-facet": "specification"
                      }
                    },
                    "description": "Details you already know. The business helps resolve missing specifications in the continuing engagement."
                  },
                  "quantity": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number"
                      },
                      "unit": {
                        "type": "string"
                      },
                      "per": {
                        "type": "string"
                      }
                    }
                  },
                  "timing": {
                    "type": "object",
                    "properties": {
                      "earliest": {
                        "type": "string"
                      },
                      "latest": {
                        "type": "string"
                      },
                      "recurrence": {
                        "type": "string"
                      },
                      "text": {
                        "type": "string"
                      }
                    }
                  },
                  "geography": {
                    "type": "object",
                    "properties": {
                      "text": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      },
                      "from": {
                        "type": "string"
                      },
                      "to": {
                        "type": "string"
                      }
                    }
                  },
                  "budget": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number"
                      },
                      "currency": {
                        "type": "string",
                        "description": "ISO 4217, default USD"
                      },
                      "per": {
                        "type": "string",
                        "description": "total, unit, month, year, load, ..."
                      }
                    }
                  },
                  "requested_fields": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 30,
                    "description": "Result fields you need"
                  },
                  "contact": {
                    "type": "object",
                    "description": "Optional; stored apart from the requirement, kept while we correspond or do business and for 24 months after, then deleted; you can ask us to delete it sooner",
                    "properties": {
                      "email": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "organization": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Recorded, with a reference number"
          },
          "400": {
            "description": "What to fix"
          }
        }
      }
    }
  }
}