Opply Agreements API

The Agreements API from Opply — 10 operation(s) for agreements.

Operations 14

GET /api/v1/agreements/brand/ List all agreements for the buyer's company #
GET /api/v1/agreements/brand/{uuid}/ Retrieve a specific agreement #
POST /api/v1/agreements/brand/{uuid}/place-order/ Place an order from an agreement #
GET /api/v1/agreements/brand/aggregate/ Aggregate agreement totals across the filtered set in full precision #
GET /api/v1/agreements/merchant-of-record/ List all agreements for the merchant of record company #
POST /api/v1/agreements/merchant-of-record/ Create a new agreement #
GET /api/v1/agreements/merchant-of-record/{uuid}/ Retrieve a specific agreement #
PUT /api/v1/agreements/merchant-of-record/{uuid}/ Merchant of Record endpoints for Agreements #
PATCH /api/v1/agreements/merchant-of-record/{uuid}/ Merchant of Record endpoints for Agreements #
DELETE /api/v1/agreements/merchant-of-record/{uuid}/ Merchant of Record endpoints for Agreements #
POST /api/v1/agreements/merchant-of-record/{uuid}/line-item/{line_item_uuid}/documents/ Upload a document for an agreement line item #
DELETE /api/v1/agreements/merchant-of-record/{uuid}/line-item/{line_item_uuid}/documents/{document_uuid}/ Delete a document for an agreement line item #
GET /api/v1/agreements/merchant-of-record/{uuid}/orders/ List orders placed against this agreement #
POST /api/v1/agreements/merchant-of-record/{uuid}/place-order/ Place an order from a contract (agreement) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/opply-agreements-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

opply-agreements-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Opply Activity Feed Agreements API
  version: 0.0.0
servers:
- url: https://api.opply.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Agreements
paths:
  /api/v1/agreements/brand/:
    get:
      operationId: api_v1_agreements_brand_list
      description: Returns a paginated list of all agreements where the current user's company is the buyer
      summary: List all agreements for the buyer's company
      parameters:
      - in: query
        name: agreement_number
        schema:
          type: string
        description: Case-insensitive exact match on the agreement number. Used by the buyer chat ContractNumberChip to resolve UUID-by-number.
      - in: query
        name: exclude_legacy
        schema:
          type: boolean
        description: When true, exclude agreements migrated from the legacy quotes system (rows where legacy_agreement is set).
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: product
        schema:
          type: string
        description: Case-insensitive substring match against any line item's product name. E.g. `?product=sugar` returns contracts with a line item whose name contains "sugar".
      - in: query
        name: status
        schema:
          type: string
          enum:
          - active
          - draft
          - expired
          - renewal
        description: 'Filter by lifecycle status derived from contract dates: `active` (within dates), `renewal` (within dates and ending within 90 days), `expired` (end date in the past), `draft` (start date in the future).'
      - in: query
        name: supplier_company_uuid
        schema:
          type: string
        description: Filter to a specific supplier by their company UUID.
      tags:
      - Agreements
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuyerAgreementListList'
          description: ''
        '401':
          description: Authentication credentials were not provided or are invalid
        '403':
          description: User is not authorized to view these agreements
  /api/v1/agreements/brand/{uuid}/:
    get:
      operationId: api_v1_agreements_brand_retrieve
      description: Returns detailed information about a specific agreement
      summary: Retrieve a specific agreement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Agreements
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerAgreementDetails'
          description: ''
        '401':
          description: Authentication credentials were not provided or are invalid
        '403':
          description: User is not authorized to view this agreement
        '404':
          description: Agreement not found
  /api/v1/agreements/brand/{uuid}/place-order/:
    post:
      operationId: api_v1_agreements_brand_place_order_create
      description: Creates a new order based on the agreement with specified delivery details and line items.
      summary: Place an order from an agreement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Agreements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreementOrderCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AgreementOrderCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AgreementOrderCreate'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementOrderResponse'
          description: ''
        '400':
          description: Invalid request data
        '404':
          description: Agreement or delivery address not found
  /api/v1/agreements/brand/aggregate/:
    get:
      operationId: api_v1_agreements_brand_aggregate_retrieve
      description: Returns a per-currency aggregate (sum / avg / min / max) of `total_in_buyer_currency` over the filtered agreements, computed in full-precision Decimal micro-units and rounded to integer cents once per currency. The per-agreement value matches what the list endpoint surfaces today — line-item totals computed at each agreement's per-order quantity (`AgreementLineItem.quantity` = `total_quantity_agreed / estimated_number_of_orders`) plus shipping and tax. Use this for cross-agreement sum/total/average questions so the answer isn't biased by the per-row rounding the list endpoint applies (SC-3627). Filters mirror the `list` endpoint exactly. Alternatively pass `agreement_uuids` (repeated query param) to aggregate over an explicit set of agreement UUIDs — filters are ignored when uuids are present. Every UUID must resolve inside the caller's scope or the whole call is rejected with a 403.
      summary: Aggregate agreement totals across the filtered set in full precision
      parameters:
      - in: query
        name: agreement_number
        schema:
          type: string
        description: Exact (case-insensitive) contract number match.
      - in: query
        name: agreement_uuids
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Optional explicit set of agreement UUIDs to aggregate. Pass as a repeated query param (`?agreement_uuids=<uuid>&agreement_uuids=<uuid>`). When present and non-empty, filters are ignored. Every UUID must resolve inside the caller's scope — otherwise the call is rejected with `403 forbidden` to avoid leaking which UUIDs the caller can see.
      - in: query
        name: exclude_legacy
        schema:
          type: boolean
        description: When true, omit legacy-migrated agreements.
      - in: query
        name: field
        schema:
          type: string
          enum:
          - total_in_buyer_currency
        description: Numeric field to aggregate. Currently only `total_in_buyer_currency` is supported. Defaults to that value.
      - in: query
        name: operation
        schema:
          type: string
          enum:
          - avg
          - max
          - min
          - sum
        description: 'Aggregation operation. One of: sum, avg, min, max.'
        required: true
      - in: query
        name: product
        schema:
          type: string
        description: Substring match on any line item's product name.
      - in: query
        name: status
        schema:
          type: string
          enum:
          - active
          - draft
          - expired
          - renewal
        description: Lifecycle bucket from contract dates.
      - in: query
        name: supplier_company_uuid
        schema:
          type: string
          format: uuid
        description: Supplier company UUID.
      - in: query
        name: supplier_name
        schema:
          type: string
        description: Substring match on supplier company name.
      - in: query
        name: supplier_uuid
        schema:
          type: string
          format: uuid
        description: Supplier company UUID (relational key alias).
      tags:
      - Agreements
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerAgreementAggregateResult'
          description: ''
        '400':
          description: Invalid `operation`, `field`, or `agreement_uuids` query param.
        '403':
          description: One or more `agreement_uuids` are not in the caller's scope.
  /api/v1/agreements/merchant-of-record/:
    get:
      operationId: api_v1_agreements_merchant_of_record_list
      description: Returns a paginated list of all agreements where the current user's company is the merchant of record. Supports search by agreement_number, buyer_company name, or supplier_company name; buyer/supplier/date_after/date_before/active filters; and ordering by contract_start_date or contract_end_date.
      summary: List all agreements for the merchant of record company
      parameters:
      - in: query
        name: active
        schema:
          type: boolean
      - in: query
        name: buyer
        schema:
          type: string
          format: uuid
      - in: query
        name: date_after
        schema:
          type: string
          format: date
      - in: query
        name: date_before
        schema:
          type: string
          format: date
      - name: ordering
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: product
        schema:
          type: string
      - name: search
        required: false
        in: query
        description: A search term.
        schema:
          type: string
      - in: query
        name: status
        schema:
          type: string
          enum:
          - active
          - draft
          - expired
          - renewal
        description: '* `active` - Active

          * `renewal` - Renewal

          * `expired` - Expired

          * `draft` - Draft'
      - in: query
        name: supplier
        schema:
          type: string
          format: uuid
      tags:
      - Agreements
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMerchantOfRecordAgreementListList'
          description: ''
        '401':
          description: Authentication credentials were not provided or are invalid
        '403':
          description: User is not authorized to view these agreements
    post:
      operationId: api_v1_agreements_merchant_of_record_create
      description: Creates a new agreement as merchant of record. The buyer currency is always set to GBP.
      summary: Create a new agreement
      tags:
      - Agreements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantOfRecordAgreementCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MerchantOfRecordAgreementCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MerchantOfRecordAgreementCreate'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantOfRecordAgreementDetails'
          description: ''
        '400':
          description: Validation error
  /api/v1/agreements/merchant-of-record/{uuid}/:
    get:
      operationId: api_v1_agreements_merchant_of_record_retrieve
      description: Returns detailed information about a specific agreement
      summary: Retrieve a specific agreement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Agreements
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantOfRecordAgreementDetails'
          description: ''
        '401':
          description: Authentication credentials were not provided or are invalid
        '403':
          description: User is not authorized to view this agreement
        '404':
          description: Agreement not found
    put:
      operationId: api_v1_agreements_merchant_of_record_update
      summary: Merchant of Record endpoints for Agreements
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Agreements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantOfRecordAgreementList'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MerchantOfRecordAgreementList'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MerchantOfRecordAgreementList'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantOfRecordAgreementList'
          description: ''
    patch:
      operationId: api_v1_agreements_merchant_of_record_partial_update
      summary: Merchant of Record endpoints for Agreements
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Agreements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMerchantOfRecordAgreementList'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMerchantOfRecordAgreementList'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMerchantOfRecordAgreementList'
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantOfRecordAgreementList'
          description: ''
    delete:
      operationId: api_v1_agreements_merchant_of_record_destroy
      summary: Merchant of Record endpoints for Agreements
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Agreements
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '204':
          description: No response body
  /api/v1/agreements/merchant-of-record/{uuid}/line-item/{line_item_uuid}/documents/:
    post:
      operationId: api_v1_agreements_merchant_of_record_line_item_documents_create
      description: Uploads a document (spec sheet or signed agreement) for a specific line item
      summary: Upload a document for an agreement line item
      parameters:
      - in: path
        name: line_item_uuid
        schema:
          type: string
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Agreements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreementLineItemDocumentUpload'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AgreementLineItemDocumentUpload'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AgreementLineItemDocumentUpload'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementLineItemDocument'
          description: ''
        '400':
          description: Validation error
        '403':
          description: User is not authorized to upload documents for this line item
        '404':
          description: Line item not found
  /api/v1/agreements/merchant-of-record/{uuid}/line-item/{line_item_uuid}/documents/{document_uuid}/:
    delete:
      operationId: api_v1_agreements_merchant_of_record_line_item_documents_destroy
      description: Deletes a document (spec sheet or signed agreement) for a specific line item
      summary: Delete a document for an agreement line item
      parameters:
      - in: path
        name: document_uuid
        schema:
          type: string
        required: true
      - in: path
        name: line_item_uuid
        schema:
          type: string
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Agreements
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '204':
          description: Document deleted successfully
        '400':
          description: Validation error
        '403':
          description: User is not authorized to delete documents for this line item
        '404':
          description: Document not found
  /api/v1/agreements/merchant-of-record/{uuid}/orders/:
    get:
      operationId: api_v1_agreements_merchant_of_record_orders_list
      description: Returns the orders linked to this agreement (tenant-scoped to the MoR), newest first — powers the contract detail's Linked Orders table.
      summary: List orders placed against this agreement
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Agreements
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMerchantOfRecordAgreementLinkedOrderList'
          description: ''
        '401':
          description: Authentication credentials were not provided or are invalid
        '404':
          description: Agreement not found
  /api/v1/agreements/merchant-of-record/{uuid}/place-order/:
    post:
      operationId: api_v1_agreements_merchant_of_record_place_order_create
      description: 'Creates a new order from the contract on behalf of the buyer. Mirrors the buyer self-service flow: quantities + delivery date/address are supplied; prices, currencies, terms, shipping/fees and product details are derived from the contract. The buyer contact the order is placed for is given via `ordered_by_uuid`.'
      summary: Place an order from a contract (agreement)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Agreements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantOfRecordAgreementOrderCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MerchantOfRecordAgreementOrderCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MerchantOfRecordAgreementOrderCreate'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantOfRecordAgreementOrderResponse'
          description: ''
        '400':
          description: Invalid request data
        '404':
          description: Contract or delivery address not found
components:
  schemas:
    PayoutTermsEnum:
      enum:
      - payout_before_dispatch
      - payout_after_dispatch
      type: string
      description: '* `payout_before_dispatch` - Payout Before Dispatch

        * `payout_after_dispatch` - Payout After Dispatch'
    LifecycleStateEnum:
      enum:
      - initializing
      - confirmed
      - canceled
      - pending_merchant_of_record_approval
      - order_received
      - order_sent_to_supplier
      - order_confirming_price
      - forecasted
      type: string
      description: '* `initializing` - Initializing

        * `confirmed` - Confirmed

        * `canceled` - Cancelled

        * `pending_merchant_of_record_approval` - Pending Merchant of Record Approval

        * `order_received` - Order Received

        * `order_sent_to_supplier` - Order Sent To Supplier

        * `order_confirming_price` - Order Confirming Price

        * `forecasted` - Forecasted'
    MerchantOfRecordAgreementCreate:
      type: object
      properties:
        buyer_company:
          type: string
          format: uuid
        buyer_currency:
          $ref: '#/components/schemas/AvailableCurrenciesEnum'
        supplier_company:
          type: string
          format: uuid
        delivery_address_uuid:
          type: string
          format: uuid
        supplier_currency:
          $ref: '#/components/schemas/AvailableCurrenciesEnum'
        payment_provider:
          $ref: '#/components/schemas/PaymentProviderEnum'
        supplier_to_buyer_currency_conversion_rate:
          type: string
          format: decimal
          pattern: ^-?\d{0,9}(?:\.\d{0,6})?$
        shipping_price_in_supplier_currency:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
        supplier_shipping_tax_rate:
          type: string
          format: decimal
          pattern: ^-?\d{0,1}(?:\.\d{0,4})?$
        buyer_shipping_tax_rate:
          type: string
          format: decimal
          pattern: ^-?\d{0,1}(?:\.\d{0,4})?$
        import_fee_price_in_buyer_currency:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
        export_fee_price_in_supplier_currency:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
        payment_terms:
          $ref: '#/components/schemas/AppOrderPaymentTermsEnum'
        payout_terms:
          $ref: '#/components/schemas/PayoutTermsEnum'
        days_until_payment_due:
          type: integer
          maximum: 2147483647
          minimum: 0
        days_until_payout_due:
          type: integer
          maximum: 2147483647
          minimum: 0
        estimated_number_of_orders:
          type: integer
          maximum: 2147483647
          minimum: 0
        minimum_lead_time_for_first_order_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
        minimum_lead_time_for_following_orders_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/MerchantOfRecordAgreementLineItemCreate'
        contract_start_date:
          type: string
          format: date
        contract_end_date:
          type: string
          format: date
        order_management_contract_uuid:
          type:
          - string
          - 'null'
          format: uuid
      required:
      - buyer_company
      - contract_end_date
      - contract_start_date
      - delivery_address_uuid
      - estimated_number_of_orders
      - line_items
      - minimum_lead_time_for_first_order_in_days
      - minimum_lead_time_for_following_orders_in_days
      - shipping_price_in_supplier_currency
      - supplier_company
    BuyerAgreementDetails:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        agreement_number:
          type: string
          readOnly: true
        payment_terms:
          $ref: '#/components/schemas/AppOrderPaymentTermsEnum'
        payment_provider:
          $ref: '#/components/schemas/PaymentProviderEnum'
        buyer_currency:
          type: string
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/BuyerAgreementLineItem'
        shipping_price_for_buyer_in_cents:
          type: number
          readOnly: true
        buyer_total_shipping_tax_amount_in_buyer_currency_in_cents:
          type: number
          readOnly: true
        delivery_address:
          allOf:
          - $ref: '#/components/schemas/DeliveryAddressResponse'
        buyer_shipping_tax_rate:
          type: number
          format: double
        estimated_number_of_orders:
          type: integer
          maximum: 2147483647
          minimum: 0
        minimum_lead_time_for_first_order_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
        minimum_lead_time_for_following_orders_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
        days_until_payment_due:
          type: integer
          maximum: 2147483647
          minimum: 0
        has_at_least_one_order:
          type: boolean
          description: Checks if there is at least one AppOrder associated with this Agreement.
          readOnly: true
        channel_uuid:
          type: string
          format: uuid
        legacy_contract_uuid:
          type: string
          readOnly: true
        summary:
          allOf:
          - $ref: '#/components/schemas/AgreementSummary'
          readOnly: true
        contract_start_date:
          type: string
          format: date
        contract_end_date:
          type: string
          format: date
        supplier_company_name:
          type: string
          readOnly: true
        supplier_company_uuid:
          type: string
          readOnly: true
      required:
      - agreement_number
      - buyer_currency
      - buyer_shipping_tax_rate
      - buyer_total_shipping_tax_amount_in_buyer_currency_in_cents
      - channel_uuid
      - contract_end_date
      - contract_start_date
      - delivery_address
      - estimated_number_of_orders
      - has_at_least_one_order
      - legacy_contract_uuid
      - line_items
      - minimum_lead_time_for_first_order_in_days
      - minimum_lead_time_for_following_orders_in_days
      - shipping_price_for_buyer_in_cents
      - summary
      - supplier_company_name
      - supplier_company_uuid
      - uuid
    Country:
      enum:
      - AF
      - AX
      - AL
      - DZ
      - AS
      - AD
      - AO
      - AI
      - AQ
      - AG
      - AR
      - AM
      - AW
      - AU
      - AT
      - AZ
      - BS
      - BH
      - BD
      - BB
      - BY
      - BE
      - BZ
      - BJ
      - BM
      - BT
      - BO
      - BQ
      - BA
      - BW
      - BV
      - BR
      - IO
      - BN
      - BG
      - BF
      - BI
      - CV
      - KH
      - CM
      - CA
      - KY
      - CF
      - TD
      - CL
      - CN
      - CX
      - CC
      - CO
      - KM
      - CG
      - CD
      - CK
      - CR
      - CI
      - HR
      - CU
      - CW
      - CY
      - CZ
      - DK
      - DJ
      - DM
      - DO
      - EC
      - EG
      - SV
      - GQ
      - ER
      - EE
      - SZ
      - ET
      - FK
      - FO
      - FJ
      - FI
      - FR
      - GF
      - PF
      - TF
      - GA
      - GM
      - GE
      - DE
      - GH
      - GI
      - GR
      - GL
      - GD
      - GP
      - GU
      - GT
      - GG
      - GN
      - GW
      - GY
      - HT
      - HM
      - VA
      - HN
      - HK
      - HU
      - IS
      - IN
      - ID
      - IR
      - IQ
      - IE
      - IM
      - IL
      - IT
      - JM
      - JP
      - JE
      - JO
      - KZ
      - KE
      - KI
      - KW
      - KG
      - LA
      - LV
      - LB
      - LS
      - LR
      - LY
      - LI
      - LT
      - LU
      - MO
      - MG
      - MW
      - MY
      - MV
      - ML
      - MT
      - MH
      - MQ
      - MR
      - MU
      - YT
      - MX
      - FM
      - MD
      - MC
      - MN
      - ME
      - MS
      - MA
      - MZ
      - MM
      - NA
      - NR
      - NP
      - NL
      - NC
      - NZ
      - NI
      - NE
      - NG
      - NU
      - NF
      - KP
      - MK
      - XI
      - MP
      - 'NO'
      - OM
      - PK
      - PW
      - PS
      - PA
      - PG
      - PY
      - PE
      - PH
      - PN
      - PL
      - PT
      - PR
      - QA
      - RE
      - RO
      - RU
      - RW
      - BL
      - SH
      - KN
      - LC
      - MF
      - PM
      - VC
      - WS
      - SM
      - ST
      - SA
      - SN
      - RS
      - SC
      - SL
      - SG
      - SX
      - SK
      - SI
      - SB
      - SO
      - ZA
      - GS
      - KR
      - SS
      - ES
      - LK
      - SD
      - SR
      - SJ
      - SE
      - CH
      - SY
      - TW
      - TJ
      - TZ
      - TH
      - TL
      - TG
      - TK
      - TO
      - TT
      - TN
      - TR
      - TM
      - TC
      - TV
      - UG
      - UA
      - AE
      - GB
      - UM
      - US
      - UY
      - UZ
      - VU
      - VE
      - VN
      - VG
      - VI
      - WF
      - EH
      - YE
      - ZM
      - ZW
      type: string
      description: '* `AF` - Afghanistan

        * `AX` - Åland Islands

        * `AL` - Albania

        * `DZ` - Algeria

        * `AS` - American Samoa

        * `AD` - Andorra

        * `AO` - Angola

        * `AI` - Anguilla

        * `AQ` - Antarctica

        * `AG` - Antigua and Barbuda

        * `AR` - Argentina

        * `AM` - Armenia

        * `AW` - Aruba

        * `AU` - Australia

        * `AT` - Austria

        * `AZ` - Azerbaijan

        * `BS` - Bahamas

        * `BH` - Bahrain

        * `BD` - Bangladesh

        * `BB` - Barbados

        * `BY` - Belarus

        * `BE` - Belgium

        * `BZ` - Belize

        * `BJ` - Benin

        * `BM` - Bermuda

        * `BT` - Bhutan

        * `BO` - Bolivia

        * `BQ` - Bonaire, Sint Eustatius and Saba

        * `BA` - Bosnia and Herzegovina

        * `BW` - Botswana

        * `BV` - Bouvet Island

        * `BR` - Brazil

        * `IO` - British Indian Ocean Territory

        * `BN` - Brunei

        * `BG` - Bulgaria

        * `BF` - Burkina Faso

        * `BI` - Burundi

        * `CV` - Cabo Verde

        * `KH` - Cambodia

        * `CM` - Cameroon

        * `CA` - Canada

        * `KY` - Cayman Islands

        * `CF` - Central African Republic

        * `TD` - Chad

        * `CL` - Chile

        * `CN` - China

        * `CX` - Christmas Island

        * `CC` - Cocos (Keeling) Islands

        * `CO` - Colombia

        * `KM` - Comoros

        * `CG` - Congo

        * `CD` - Congo (the Democratic Republic of the)

        * `CK` - Cook Islands

        * `CR` - Costa Rica

        * `CI` - Côte d''Ivoire

        * `HR` - Croatia

        * `CU` - Cuba

        * `CW` - Curaçao

        * `CY` - Cyprus

        * `CZ` - Czechia

        * `DK` - Denmark

        * `DJ` - Djibouti

        * `DM` - Dominica

        * `DO` - Dominican Republic

        * `EC` - Ecuador

        * `EG` - Egypt

        * `SV` - El Salvador

        * `GQ` - Equatorial Guinea

        * `ER` - Eritrea

        * `EE` - Estonia

        * `SZ` - Eswatini

        * `ET` - Ethiopia

        * `FK` - Falkland Islands (Malvinas)

        * `FO` - Faroe Islands

        * `FJ` - Fiji

        * `FI` - Finland

        * `FR` - France

        * `GF` - French Guiana

        * `PF` - French Polynesia

        * `TF` - French Southern Te

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/opply/refs/heads/main/openapi/opply-agreements-api-openapi.yml