Opply Companies API

The Companies API from Opply — 27 operation(s) for companies.

OpenAPI Specification

opply-companies-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Opply Activity Feed Companies API
  version: 0.0.0
tags:
- name: Companies
paths:
  /api/v1/companies/documents/:
    get:
      operationId: api_v1_companies_documents_list
      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
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCompanyDocumentList'
          description: ''
    post:
      operationId: api_v1_companies_documents_create
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyDocument'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CompanyDocument'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CompanyDocument'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyDocument'
          description: ''
  /api/v1/companies/documents/{uuid}/:
    get:
      operationId: api_v1_companies_documents_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyDocument'
          description: ''
    delete:
      operationId: api_v1_companies_documents_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '204':
          description: No response body
  /api/v1/companies/documents/{uuid}/create-resumable-upload-session/:
    post:
      operationId: api_v1_companies_documents_create_resumable_upload_session_create
      summary: Request a resumable file upload URL
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleUpload'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GoogleUpload'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GoogleUpload'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleUploadResponse'
          description: ''
  /api/v1/companies/documents/{uuid}/upload-complete/:
    post:
      operationId: api_v1_companies_documents_upload_complete_create
      summary: Set an upload as done
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleUploadComplete'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GoogleUploadComplete'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GoogleUploadComplete'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/URL'
          description: ''
  /api/v1/companies/merchant-of-record-brands/:
    get:
      operationId: api_v1_companies_merchant_of_record_brands_list
      description: Retrieve a list of brand companies where the current user's company serves as the Merchant of Record.
      summary: List brands associated with Merchant of Record
      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: query
        name: search
        schema:
          type: string
        description: Filter brands by name (case-insensitive partial match)
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMerchantOfRecordCompanyList'
          description: ''
  /api/v1/companies/merchant-of-record-buyers/:
    post:
      operationId: api_v1_companies_merchant_of_record_buyers_create
      description: Create a new buyer/brand company with associated user and address
      summary: Create a new buyer/brand
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoRBuyerCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MoRBuyerCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MoRBuyerCreate'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoRBuyerDetailResponse'
          description: ''
  /api/v1/companies/merchant-of-record-buyers/{uuid}/:
    get:
      operationId: api_v1_companies_merchant_of_record_buyers_retrieve
      description: Retrieve detailed information about a buyer/brand company
      summary: Get buyer/brand details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantOfRecordBuyerDetail'
          description: ''
    patch:
      operationId: api_v1_companies_merchant_of_record_buyers_partial_update
      description: Partially update buyer/brand company information. User email cannot be changed after creation.
      summary: Update buyer/brand details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMoRBuyerUpdate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMoRBuyerUpdate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMoRBuyerUpdate'
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoRBuyerDetailResponse'
          description: ''
  /api/v1/companies/merchant-of-record-buyers/{uuid}/compliance-documents/:
    get:
      operationId: api_v1_companies_merchant_of_record_buyers_compliance_documents_list
      description: 'Returns the buyer''s certification/compliance documents (sales tax exemption certificates, organic/quality certifications, etc.) with their lifecycle status and free-text notes. Documents filed by the onboarding extraction agent also carry a structured `extraction` object (jurisdiction, certificate number, issuing authority); manually uploaded documents have `extraction: null`. Read-only; ordered newest-first.'
      summary: List compliance documents held by this buyer
      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
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoRBuyerComplianceDocumentList'
          description: ''
  /api/v1/companies/merchant-of-record-buyers/{uuid}/connect-allianz/:
    post:
      operationId: api_v1_companies_merchant_of_record_buyers_connect_allianz_create
      description: Validate the given Allianz company ID against the Allianz API and, on success, persist allianz_company_id and is_connected_to_allianz=True on the buyer. Set skip_validation=true to bypass the API call (for local/staging environments).
      summary: Connect buyer to Allianz
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllianzConnect'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AllianzConnect'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AllianzConnect'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoRBuyerDetailResponse'
          description: ''
        '400':
          description: Invalid Allianz company ID or API error
  /api/v1/companies/merchant-of-record-buyers/{uuid}/financial-documents/:
    get:
      operationId: api_v1_companies_merchant_of_record_buyers_financial_documents_list
      description: Returns the financial documents (P&L, balance sheet, management accounts, etc.) the buyer has uploaded to support credit reviews. Read-only; ordered newest-first.
      summary: List financial documents uploaded by this buyer
      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
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuyerFinancialDocumentList'
          description: ''
  /api/v1/companies/merchant-of-record-buyers/{uuid}/onboarding-suppliers/:
    get:
      operationId: api_v1_companies_merchant_of_record_buyers_onboarding_suppliers_retrieve
      description: ViewSet for MoR users to view, create, and update buyer/brand details and their suppliers
      summary: Manage Buyer/Brand details for Merchant of Record
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantOfRecordBuyerDetail'
          description: ''
  /api/v1/companies/merchant-of-record-buyers/{uuid}/suppliers/:
    get:
      operationId: api_v1_companies_merchant_of_record_buyers_suppliers_list
      description: Get a list of suppliers associated with this buyer
      summary: Get suppliers for a buyer
      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
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuyerSupplierList'
          description: ''
  /api/v1/companies/merchant-of-record-buyers/{uuid}/users/:
    post:
      operationId: api_v1_companies_merchant_of_record_buyers_users_create
      description: 'Create an additional user on an existing buyer company scoped to the requesting MoR. The user is created without a password and emailed a set-password link once the transaction commits: buyers still onboarding (`onboarding_state=in_progress`) receive the buyer-onboarding invite whose link points at the buyer web app; active buyers receive the standard password-create email. Pass `is_admin=true` to grant the new user the company admin permission; otherwise they join as a member.'
      summary: Add a user to a buyer/brand
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoRBuyerUserCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MoRBuyerUserCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MoRBuyerUserCreate'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoRBuyerUserResponse'
          description: ''
        '400':
          description: Invalid input data (e.g. email already registered)
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Buyer not found for this MoR
  /api/v1/companies/merchant-of-record-company-addresses/:
    get:
      operationId: api_v1_companies_merchant_of_record_company_addresses_list
      description: 'ViewSet for retrieving and creating company addresses filtered by company UUID.

        Intended for use by Merchant of Record users.'
      summary: List company addresses by company UUID
      parameters:
      - in: query
        name: address_type
        schema:
          type: string
        description: Optional address-type filter (e.g. 'delivery_address' for delivery pickers)
      - in: query
        name: company_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the company to filter addresses by
        required: true
      - 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
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCompanyAddressList'
          description: ''
    post:
      operationId: api_v1_companies_merchant_of_record_company_addresses_create
      description: 'ViewSet for retrieving and creating company addresses filtered by company UUID.

        Intended for use by Merchant of Record users.'
      summary: Create a new company address for a given company UUID
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCompanyAddress'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateCompanyAddress'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateCompanyAddress'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyAddress'
          description: ''
  /api/v1/companies/merchant-of-record-company-addresses/{uuid}/:
    put:
      operationId: api_v1_companies_merchant_of_record_company_addresses_update
      description: 'ViewSet for retrieving and creating company addresses filtered by company UUID.

        Intended for use by Merchant of Record users.'
      summary: Manage company addresses filtered by Merchant of Record
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyAddress'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CompanyAddress'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CompanyAddress'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyAddress'
          description: ''
    patch:
      operationId: api_v1_companies_merchant_of_record_company_addresses_partial_update
      description: 'ViewSet for retrieving and creating company addresses filtered by company UUID.

        Intended for use by Merchant of Record users.'
      summary: Manage company addresses filtered by Merchant of Record
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCompanyAddress'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCompanyAddress'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCompanyAddress'
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyAddress'
          description: ''
    delete:
      operationId: api_v1_companies_merchant_of_record_company_addresses_destroy
      description: 'ViewSet for retrieving and creating company addresses filtered by company UUID.

        Intended for use by Merchant of Record users.'
      summary: Manage company addresses filtered by Merchant of Record
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '204':
          description: No response body
  /api/v1/companies/merchant-of-record-suppliers/:
    get:
      operationId: api_v1_companies_merchant_of_record_suppliers_list
      description: Retrieve a list of supplier companies where the current user's company serves as the Merchant of Record.
      summary: List suppliers associated with Merchant of Record
      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: query
        name: search
        schema:
          type: string
        description: Filter suppliers by name (case-insensitive partial match)
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMerchantOfRecordCompanyList'
          description: ''
  /api/v1/companies/merchant-of-record-suppliers/{uuid}/:
    get:
      operationId: api_v1_companies_merchant_of_record_suppliers_retrieve
      description: Retrieve supplier details for a given company UUID.
      summary: Get supplier basic information
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantOfRecordSupplier'
          description: ''
  /api/v1/companies/merchant-of-record-suppliers/{uuid}/add-buyer/:
    post:
      operationId: api_v1_companies_merchant_of_record_suppliers_add_buyer_create
      description: Add a new buyer to this supplier by creating a referral relationship
      summary: Add buyer to supplier
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierAddBuyer'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SupplierAddBuyer'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SupplierAddBuyer'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                description: Buyer added successfully
          description: ''
  /api/v1/companies/merchant-of-record-suppliers/{uuid}/buyer-payment-terms/:
    get:
      operationId: api_v1_companies_merchant_of_record_suppliers_buyer_payment_terms_retrieve
      description: Lookup payment terms for a buyer-supplier pair. Returns 204 No Content if none set.
      summary: Get buyer-supplier payment terms
      parameters:
      - in: query
        name: buyer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the buyer company
        required: true
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerSupplierPaymentTerms'
          description: ''
        '204':
          description: No payment terms found for this pair
    post:
      operationId: api_v1_companies_merchant_of_record_suppliers_buyer_payment_terms_create
      description: Create payment terms for a buyer-supplier pair. Returns 400 if terms already exist.
      summary: Create buyer-supplier payment terms
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerSupplierPaymentTermsCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuyerSupplierPaymentTermsCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuyerSupplierPaymentTermsCreate'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerSupplierPaymentTerms'
          description: ''
        '400':
          description: Validation error or terms already exist
    patch:
      operationId: api_v1_companies_merchant_of_record_suppliers_buyer_payment_terms_partial_update
      description: Partially update payment terms for a buyer-supplier pair.
      summary: Update buyer-supplier payment terms
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBuyerSupplierPaymentTermsCreate'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBuyerSupplierPaymentTermsCreate'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBuyerSupplierPaymentTermsCreate'
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerSupplierPaymentTerms'
          description: ''
        '404':
          description: No payment terms found for this pair
    delete:
      operationId: api_v1_companies_merchant_of_record_suppliers_buyer_payment_terms_destroy
      description: Remove payment terms for a buyer-supplier pair.
      summary: Delete buyer-supplier payment terms
      parameters:
      - in: query
        name: buyer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the buyer company
        required: true
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '204':
          description: Deleted
        '404':
          description: No payment terms found for this pair
  /api/v1/companies/merchant-of-record-suppliers/{uuid}/buyers/:
    get:
      operationId: api_v1_companies_merchant_of_record_suppliers_buyers_list
      description: Get a list of buyers (brands) associated with this supplier through referrals
      summary: Get buyers for supplier
      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
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSupplierBuyerList'
          description: ''
  /api/v1/companies/merchant-of-record-suppliers/{uuid}/contacts/:
    get:
      operationId: api_v1_companies_merchant_of_record_suppliers_contacts_list
      description: List all contacts for this supplier.
      summary: List supplier contacts
      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
        required: true
      tags:
      - Companies
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSupplierContactList'
          description: ''
    post:
      operationId: api_v1_companies_merchant_of_record_suppliers_contacts_create
      description: Create a new supplier contact.
      summary: Create supplier contact
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierContact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SupplierContact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SupplierContact'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierContact'
          description: ''
        '400':
          description: Validation error
  /api/v1/companies/merchant-of-record-suppliers/{uuid}/contacts/{contact_uuid}/:
    put:
      operationId: api_v1_companies_merchant_of_record_suppliers_contacts_update
      description: Full update (replace) of a supplier contact.
      summary: Replace supplier contact
      parameters:
      - in: path
        name: contact_uuid
        schema:
          type: string
        required: true
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierContact'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SupplierContact'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SupplierContact'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierContact'
          description: ''
        '400':
          description: Validation error
        '404':
          description: Not found
    patch:
      operationId: api_v1_companies_merchant_of_record_suppliers_contacts_partial_update
      description: Partial update of a supplier contact.
      summary: Partially update supplier contact
      parameters:
      - in: path
        name: contact_uuid
        schema:
          type: string
        required: true
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - Companies
      requestBody:
        content:
          

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