Opply Buyer Onboarding API

The Buyer Onboarding API from Opply — 21 operation(s) for buyer onboarding.

OpenAPI Specification

opply-buyer-onboarding-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Opply Activity Feed Buyer Onboarding API
  version: 0.0.0
tags:
- name: Buyer Onboarding
paths:
  /api/v1/buyer-onboarding/merchant-of-record/buyers/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_list
      description: Get a paginated list of all buyers onboarding for this Merchant of Record.
      summary: List all onboarding buyers
      parameters:
      - in: query
        name: country
        schema:
          type: string
        description: Filter by country (us or uk)
      - 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: Search by buyer name
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuyerOnboardingListList'
          description: ''
        '403':
          description: User is not a Merchant of Record
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_retrieve
      description: Get detailed information about a specific buyer onboarding record.
      summary: Get buyer onboarding details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerOnboardingDetail'
          description: ''
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Buyer onboarding not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/account-details/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_account_details_retrieve
      description: Get account details for a specific buyer (company information, VAT, registration number, etc.).
      summary: Get buyer account details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDetail'
          description: ''
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Account details not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/delivery-addresses/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_delivery_addresses_list
      description: Get all delivery addresses for a specific buyer onboarding.
      summary: Get buyer delivery addresses
      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
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuyerOnboardingDeliveryAddressList'
          description: ''
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Buyer onboarding not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/delivery-details/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_delivery_details_retrieve
      description: Get delivery details for a specific buyer (address, contact, warehouse information, etc.).
      summary: Get buyer delivery details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeliveryDetails'
          description: ''
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Delivery details not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/delivery-emails/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_delivery_emails_list
      description: Get all delivery emails for a specific buyer onboarding.
      summary: Get buyer delivery emails
      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
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDeliveryEmailList'
          description: ''
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Buyer onboarding not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/documents/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_documents_list
      description: Get all documents for a specific buyer onboarding.
      summary: Get buyer documents
      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
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuyerOnboardingDocumentList'
          description: ''
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Buyer onboarding not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/steps/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_steps_list
      description: Get all onboarding steps for a specific buyer, organized by phase.
      summary: List buyer onboarding steps
      parameters:
      - in: query
        name: is_completed
        schema:
          type: boolean
        description: Filter by completion status (true/false)
      - 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: phase
        schema:
          type: string
        description: Filter by phase (phase_1, phase_2, phase_3, phase_4)
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuyerOnboardingStepList'
          description: ''
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Buyer onboarding not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/steps/{step_id}/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_steps_retrieve
      description: Get details of a specific onboarding step.
      summary: Get buyer onboarding step
      parameters:
      - in: path
        name: step_id
        schema:
          type: string
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerOnboardingStep'
          description: ''
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Step not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/steps/{step_id}/update/:
    patch:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_steps_update_partial_update
      description: Update a specific onboarding step. Can update notes, actions, completion status, visibility, and custom order.
      summary: Update buyer onboarding step
      parameters:
      - in: path
        name: step_id
        schema:
          type: string
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBuyerOnboardingStep'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBuyerOnboardingStep'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBuyerOnboardingStep'
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerOnboardingStep'
          description: ''
        '400':
          description: Invalid input data
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Step not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/suppliers/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_suppliers_list
      description: Get all suppliers associated with a specific buyer onboarding.
      summary: List buyer suppliers
      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
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSupplierList'
          description: ''
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Buyer onboarding not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/update/:
    patch:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_update_partial_update
      description: Update buyer onboarding notes (notes field only).
      summary: Update buyer onboarding
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        required: true
      tags:
      - Buyer Onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBuyerOnboardingDetail'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBuyerOnboardingDetail'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBuyerOnboardingDetail'
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerOnboardingDetail'
          description: ''
        '400':
          description: Invalid input data
        '403':
          description: User is not a Merchant of Record
        '404':
          description: Buyer onboarding not found
  /api/v1/buyer-onboarding/merchant-of-record/buyers/generate-link/:
    post:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_generate_link_create
      description: Legacy MoR flow (feature flag `isBuyerInvitationFlowEnabled` off). Creates a BuyerOnboarding record and generates a unique UUID-based link the MoR can hand to the buyer. The link does not require authentication for the buyer to access. The buyer will be automatically assigned onboarding steps based on active templates. No User / Company / Employee is provisioned — that is the new `invite` flow's job.
      summary: Generate buyer onboarding link (legacy)
      tags:
      - Buyer Onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateBuyerLink'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenerateBuyerLink'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/GenerateBuyerLink'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerOnboardingLinkResponse'
          description: Buyer onboarding link generated successfully
        '400':
          description: Invalid input data
        '403':
          description: User is not a Merchant of Record
  /api/v1/buyer-onboarding/merchant-of-record/buyers/invite/:
    post:
      operationId: api_v1_buyer_onboarding_merchant_of_record_buyers_invite_create
      description: Provision a brand-new buyer behind the onboarding gate. The MoR supplies the buyer's contact name, email, country, and company name; the BE creates a User + Company(onboarding_state=in_progress) + Employee link + BuyerOnboarding row, and emails the buyer a set-your-password link. There is no shareable onboarding URL — the buyer enters the app via the standard authenticated flow.
      summary: Invite a buyer to onboard
      tags:
      - Buyer Onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InviteBuyer'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/InviteBuyer'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/InviteBuyer'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InviteBuyerResponse'
          description: Buyer invited successfully
        '400':
          description: Invalid input data
        '403':
          description: User is not a Merchant of Record
  /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_supplier_submissions_list
      description: 'Cross-buyer review queue over `buyer_onboarding.Supplier` rows submitted

        by self-serve buyers. Lets MoR operators:


        - List pending (or any-status) submissions across all of their buyers.

        - Retrieve a single submission with buyer context.

        - Search candidate existing `Company(SUPPLIER)` rows for matching.

        - Match a submission to an existing supplier company.

        - Promote a submission into the `OnboardingSupplier` pipeline.

        - Reject a submission with a buyer-visible reason.


        All actions are scoped to submissions whose buyer''s MoR is the current

        user''s company.'
      summary: List buyer-submitted supplier rows pending MoR review.
      parameters:
      - in: query
        name: buyer_company_uuid
        schema:
          type: string
        description: Filter to a single buyer's submissions.
      - 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: review_status
        schema:
          type: string
        description: Filter by review status (pending_review, matched, onboarding, rejected).
      - in: query
        name: search
        schema:
          type: string
        description: Search supplier name / contact email.
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoRSupplierSubmissionList'
          description: ''
  /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_supplier_submissions_retrieve
      description: 'Cross-buyer review queue over `buyer_onboarding.Supplier` rows submitted

        by self-serve buyers. Lets MoR operators:


        - List pending (or any-status) submissions across all of their buyers.

        - Retrieve a single submission with buyer context.

        - Search candidate existing `Company(SUPPLIER)` rows for matching.

        - Match a submission to an existing supplier company.

        - Promote a submission into the `OnboardingSupplier` pipeline.

        - Reject a submission with a buyer-visible reason.


        All actions are scoped to submissions whose buyer''s MoR is the current

        user''s company.'
      summary: Retrieve a single supplier submission.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoRSupplierSubmission'
          description: ''
  /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/match/:
    post:
      operationId: api_v1_buyer_onboarding_merchant_of_record_supplier_submissions_match_create
      description: 'Cross-buyer review queue over `buyer_onboarding.Supplier` rows submitted

        by self-serve buyers. Lets MoR operators:


        - List pending (or any-status) submissions across all of their buyers.

        - Retrieve a single submission with buyer context.

        - Search candidate existing `Company(SUPPLIER)` rows for matching.

        - Match a submission to an existing supplier company.

        - Promote a submission into the `OnboardingSupplier` pipeline.

        - Reject a submission with a buyer-visible reason.


        All actions are scoped to submissions whose buyer''s MoR is the current

        user''s company.'
      summary: Match this submission to an existing supplier company.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Buyer Onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoRSupplierMatch'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MoRSupplierMatch'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MoRSupplierMatch'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoRSupplierSubmission'
          description: ''
  /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/match-candidates/:
    get:
      operationId: api_v1_buyer_onboarding_merchant_of_record_supplier_submissions_match_candidates_list
      description: 'Cross-buyer review queue over `buyer_onboarding.Supplier` rows submitted

        by self-serve buyers. Lets MoR operators:


        - List pending (or any-status) submissions across all of their buyers.

        - Retrieve a single submission with buyer context.

        - Search candidate existing `Company(SUPPLIER)` rows for matching.

        - Match a submission to an existing supplier company.

        - Promote a submission into the `OnboardingSupplier` pipeline.

        - Reject a submission with a buyer-visible reason.


        All actions are scoped to submissions whose buyer''s MoR is the current

        user''s company.'
      summary: Search existing supplier companies as match candidates. Use the returned `uuid` as `company_uuid` on the match action.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        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
      - in: query
        name: q
        schema:
          type: string
        description: Search term (name / registration_name).
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedMoRSupplierMatchCandidateList'
          description: ''
  /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/onboard/:
    post:
      operationId: api_v1_buyer_onboarding_merchant_of_record_supplier_submissions_onboard_create
      description: 'Cross-buyer review queue over `buyer_onboarding.Supplier` rows submitted

        by self-serve buyers. Lets MoR operators:


        - List pending (or any-status) submissions across all of their buyers.

        - Retrieve a single submission with buyer context.

        - Search candidate existing `Company(SUPPLIER)` rows for matching.

        - Match a submission to an existing supplier company.

        - Promote a submission into the `OnboardingSupplier` pipeline.

        - Reject a submission with a buyer-visible reason.


        All actions are scoped to submissions whose buyer''s MoR is the current

        user''s company.'
      summary: Promote this submission to the OnboardingSupplier pipeline. Creates an OnboardingSupplier row that MoR staff can then progress via the existing /mor/onboarding-suppliers/ surface.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoRSupplierSubmission'
          description: ''
  /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/reject/:
    post:
      operationId: api_v1_buyer_onboarding_merchant_of_record_supplier_submissions_reject_create
      description: 'Cross-buyer review queue over `buyer_onboarding.Supplier` rows submitted

        by self-serve buyers. Lets MoR operators:


        - List pending (or any-status) submissions across all of their buyers.

        - Retrieve a single submission with buyer context.

        - Search candidate existing `Company(SUPPLIER)` rows for matching.

        - Match a submission to an existing supplier company.

        - Promote a submission into the `OnboardingSupplier` pipeline.

        - Reject a submission with a buyer-visible reason.


        All actions are scoped to submissions whose buyer''s MoR is the current

        user''s company.'
      summary: Reject a supplier submission with an operator-supplied reason.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Buyer Onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoRSupplierReject'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MoRSupplierReject'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MoRSupplierReject'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoRSupplierSubmission'
          description: ''
  /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/reset/:
    post:
      operationId: api_v1_buyer_onboarding_merchant_of_record_supplier_submissions_reset_create
      description: 'Cross-buyer review queue over `buyer_onboarding.Supplier` rows submitted

        by self-serve buyers. Lets MoR operators:


        - List pending (or any-status) submissions across all of their buyers.

        - Retrieve a single submission with buyer context.

        - Search candidate existing `Company(SUPPLIER)` rows for matching.

        - Match a submission to an existing supplier company.

        - Promote a submission into the `OnboardingSupplier` pipeline.

        - Reject a submission with a buyer-visible reason.


        All actions are scoped to submissions whose buyer''s MoR is the current

        user''s company.'
      summary: Reset a previously reviewed submission back to pending.
      parameters:
      - in: path
        name: id
        schema:
          type: string
        required: true
      tags:
      - Buyer Onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoRSupplierSubmission'
          description: ''
components:
  schemas:
    PaginatedBuyerOnboardingListList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/BuyerOnboardingList'
    BuyerOnboardingDocument:
      type: object
      description: Serializer for BuyerOnboardingDocument model.
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for document lookup
        document:
          type: string
          format: uri
          description: Uploaded document
        document_url:
          type: string
          readOnly: true
        description:
          type: string
          nullable: true
          description: Optional description of the document
        created_at:
          type: string
          format: date-time
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - created_at
      - document
      - document_url
      - modified_at
      - 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
      - 

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