Opply Buyer Onboarding API

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

Operations 21

GET /api/v1/buyer-onboarding/merchant-of-record/buyers/ List all onboarding buyers #
GET /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/ Get buyer onboarding details #
GET /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/account-details/ Get buyer account details #
GET /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/delivery-addresses/ Get buyer delivery addresses #
GET /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/delivery-details/ Get buyer delivery details #
GET /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/delivery-emails/ Get buyer delivery emails #
GET /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/documents/ Get buyer documents #
GET /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/steps/ List buyer onboarding steps #
GET /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/steps/{step_id}/ Get buyer onboarding step #
PATCH /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/steps/{step_id}/update/ Update buyer onboarding step #
GET /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/suppliers/ List buyer suppliers #
PATCH /api/v1/buyer-onboarding/merchant-of-record/buyers/{uuid}/update/ Update buyer onboarding #
POST /api/v1/buyer-onboarding/merchant-of-record/buyers/invite/ Invite a buyer to onboard #
GET /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/ List buyer-submitted supplier rows pending MoR review. #
GET /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/ Retrieve a single supplier submission. #
POST /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/match/ Match this submission to an existing supplier company. #
GET /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/match-candidates/ Search existing supplier companies as match candidates. Use the returned `uuid` as `company_uuid` on the match action. #
POST /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/onboard/ Promote this submission to the OnboardingSupplier pipeline. Creates an OnboardingSupplier row that MoR staff can then progress via the existing /mor/onboarding-suppliers/ surface. #
POST /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/reject/ Reject a supplier submission with an operator-supplied reason. #
POST /api/v1/buyer-onboarding/merchant-of-record/supplier-submissions/{id}/reset/ Reset a previously reviewed submission back to pending. #

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-buyer-onboarding-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-buyer-onboarding-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Opply Activity Feed Buyer Onboarding 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: 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:
    Supplier:
      type: object
      description: 'Serializer for supplier information.


        Only includes fields that are actively used in the public buyer onboarding form.

        Other model fields are kept for backward compatibility but not exposed in the API.'
      properties:
        id:
          type: integer
          readOnly: true
        supplier_name:
          type: string
          description: Supplier name
          maxLength: 255
        average_monthly_spend:
          type:
          - string
          - 'null'
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,2})?$
          description: Average monthly spend with this supplier
        invoice_currency:
          type: string
          description: Invoice/Payment currency (e.g., USD, GBP, EUR)
          maxLength: 3
        payment_terms:
          type: string
          description: Supplier payment terms
        priority:
          description: 'Priority to onboard this supplier


            * `high` - High

            * `medium` - Medium

            * `low` - Low'
          oneOf:
          - $ref: '#/components/schemas/PriorityEnum'
          - $ref: '#/components/schemas/BlankEnum'
        supplier_country:
          type: string
          description: Supplier country
          maxLength: 100
        arranges_delivery:
          type: boolean
          description: Does the supplier arrange delivery?
        lead_time:
          type: string
          description: Agreed lead time
          maxLength: 255
        is_organic:
          type: boolean
          description: Is this an organic supplier?
        relationship_notes:
          type: string
          description: Any noteworthy information about your trading relationship
        supplier_spreadsheet:
          type:
          - string
          - 'null'
          format: uri
          description: Supplier spreadsheet
        supplier_spreadsheet_url:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - created_at
      - id
      - modified_at
      - supplier_name
      - supplier_spreadsheet_url
    AccessRequirementsEnum:
      enum:
      - delivery_appointment
      - inside_delivery
      - lift_gate
      type: string
      description: '* `delivery_appointment` - Delivery appointment requirement

        * `inside_delivery` - Inside delivery Required

        * `lift_gate` - Lift gate required'
    CountryTypeEnum:
      enum:
      - EU
      - GB
      - Other
      type: string
      description: '* `EU` - Eu

        * `GB` - Gb

        * `Other` - Other'
    BuyerOnboardingStep:
      type: object
      description: Serializer for buyer onboarding step with template information.
      properties:
        id:
          type: integer
          readOnly: true
        template_step:
          type: integer
          description: The template this step is based on
        template_phase:
          type: string
          readOnly: true
        template_phase_display:
          type: string
          readOnly: true
        process_description:
          type: strin

# --- 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