Opply Suppliers API
The Suppliers API from Opply — 41 operation(s) for suppliers.
The Suppliers API from Opply — 41 operation(s) for suppliers.
openapi: 3.0.3
info:
title: Opply Activity Feed Suppliers API
version: 0.0.0
tags:
- name: Suppliers
paths:
/api/v1/companies/accessible/me/:
get:
operationId: api_v1_companies_accessible_me_retrieve
description: 'Returns the set of companies the authenticated user can target in API calls.
- Staff users: marker response indicating "all" — no list is returned.
- Merchant of Record users: their managed companies plus their own.
- Brand (buyer) and Supplier users: their own company only.
Used by the MCP `list_accessible_companies` tool. Also useful for any client
that needs to render a company-picker scoped to the user''s permissions.'
summary: List companies the current user can act on
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
description: No response body
/api/v1/companies/addresses/:
get:
operationId: api_v1_companies_addresses_list
summary: Company address endpoints
parameters:
- in: query
name: address_type
schema:
type: string
description: 'Supported address types: billing_address delivery_address dispatch_address company_address.'
- 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:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedCompanyAddressList'
description: ''
post:
operationId: api_v1_companies_addresses_create
summary: Company address endpoints
tags:
- Suppliers
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:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyAddress'
description: ''
/api/v1/companies/addresses/{id}/:
get:
operationId: api_v1_companies_addresses_retrieve
summary: Company address endpoints
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyAddress'
description: ''
put:
operationId: api_v1_companies_addresses_update
summary: Company address endpoints
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- Suppliers
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_addresses_partial_update
summary: Company address endpoints
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- Suppliers
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_addresses_destroy
summary: Company address endpoints
parameters:
- in: path
name: id
schema:
type: string
required: true
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'204':
description: No response body
/api/v1/companies/info/:
get:
operationId: api_v1_companies_info_retrieve
summary: Basic info of a company
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyInfo'
description: ''
/api/v1/companies/invite-company/:
post:
operationId: api_v1_companies_invite_company_create
summary: Send company invite endpoint
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyInvite'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/CompanyInvite'
multipart/form-data:
schema:
$ref: '#/components/schemas/CompanyInvite'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyInvite'
description: ''
/api/v1/companies/me/finish-onboarding/:
post:
operationId: api_v1_companies_me_finish_onboarding_create
description: 'Flips `Company.onboarding_state` from `in_progress` to `active`, unlocking the rest of the buyer app. Idempotent in spirit: a company that is already `active` (or any other non-`in_progress` state) returns 409 so the caller can recover without firing a duplicate side-effect.'
summary: Mark the current company's buyer onboarding as complete
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CompanyInfo'
description: ''
'409':
description: Onboarding is not in progress.
/api/v1/companies/mor/onboarding-suppliers/:
get:
operationId: api_v1_companies_mor_onboarding_suppliers_list
description: Get a list of all onboarding suppliers (MoR only). By default, suppliers with 'Ready to Trade' status are excluded. Pass include_ready_to_trade=true to include them. If a status query parameter is provided (for example, status=ready_to_trade), the list will be filtered by that status and 'Ready to Trade' suppliers will be included according to the status filter even when include_ready_to_trade is not set.
summary: List all onboarding suppliers
parameters:
- in: query
name: include_ready_to_trade
schema:
type: boolean
description: 'Include suppliers with ''Ready to Trade'' status (default: false) when no explicit status filter is applied.'
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedOnboardingSupplierListList'
description: ''
post:
operationId: api_v1_companies_mor_onboarding_suppliers_create
description: Create a new onboarding supplier record
summary: Create a new onboarding supplier
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OnboardingSupplierCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/OnboardingSupplierCreate'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
description: ''
/api/v1/companies/mor/onboarding-suppliers/{onboarding_supplier_uuid}/activities/:
get:
operationId: listOnboardingSupplierActivities
description: Get a list of activities for an onboarding supplier
summary: List onboarding supplier activities
parameters:
- in: path
name: onboarding_supplier_uuid
schema:
type: string
format: uuid
description: UUID of the onboarding supplier
required: true
- in: query
name: page
schema:
type: integer
description: Page number for pagination
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedOnboardingSupplierActivityList'
description: ''
post:
operationId: createOnboardingSupplierActivity
description: Create a new activity and update supplier status
summary: Create onboarding supplier activity
parameters:
- in: path
name: onboarding_supplier_uuid
schema:
type: string
format: uuid
description: UUID of the onboarding supplier
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierActivityCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OnboardingSupplierActivityCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/OnboardingSupplierActivityCreate'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierActivity'
description: ''
/api/v1/companies/mor/onboarding-suppliers/{uuid}/:
get:
operationId: api_v1_companies_mor_onboarding_suppliers_retrieve
description: Get detailed information about an onboarding supplier
summary: Get onboarding supplier details
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
description: ''
put:
operationId: api_v1_companies_mor_onboarding_suppliers_update
description: Update onboarding supplier
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierUpdate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OnboardingSupplierUpdate'
multipart/form-data:
schema:
$ref: '#/components/schemas/OnboardingSupplierUpdate'
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierUpdate'
description: ''
patch:
operationId: api_v1_companies_mor_onboarding_suppliers_partial_update
description: Update the status of an onboarding supplier
summary: Update onboarding supplier status
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierUpdate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierUpdate'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierUpdate'
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
description: ''
delete:
operationId: api_v1_companies_mor_onboarding_suppliers_destroy
description: Delete an onboarding supplier. Only allowed if status is 'onboarding_not_started'
summary: Delete onboarding supplier
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'204':
content:
application/json:
schema:
description: Successfully deleted
description: ''
'400':
content:
application/json:
schema:
description: Cannot delete - supplier status is not 'onboarding_not_started'
description: ''
/api/v1/companies/mor/onboarding-suppliers/{uuid}/address/:
patch:
operationId: api_v1_companies_mor_onboarding_suppliers_address_partial_update
description: Patch only address fields stored on the onboarding supplier (MoR only).
summary: Partially update onboarding supplier address
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierAddress'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierAddress'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierAddress'
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
description: ''
/api/v1/companies/mor/onboarding-suppliers/{uuid}/archive/:
post:
operationId: api_v1_companies_mor_onboarding_suppliers_archive_create
description: Archive an onboarding supplier. Not allowed for 'onboarding_not_started' (use delete) or 'ready_to_trade' status.
summary: Archive onboarding supplier
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
multipart/form-data:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
description: ''
'400':
content:
application/json:
schema:
description: Cannot archive
description: ''
/api/v1/companies/mor/onboarding-suppliers/{uuid}/buyers/:
get:
operationId: getOnboardingSupplierBuyers
description: Get a list of buyers associated with this onboarding supplier
summary: Get buyers for onboarding supplier
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- in: path
name: uuid
schema:
type: string
format: uuid
description: UUID of the onboarding supplier
required: true
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedOnboardingSupplierBuyerList'
description: ''
/api/v1/companies/mor/onboarding-suppliers/{uuid}/contacts/:
get:
operationId: api_v1_companies_mor_onboarding_suppliers_contacts_list
description: List all contacts for this onboarding supplier (MoR only).
summary: List onboarding supplier contacts
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedOnboardingSupplierContactList'
description: ''
post:
operationId: api_v1_companies_mor_onboarding_suppliers_contacts_create
description: Create a new contact for this onboarding supplier (MoR only).
summary: Create onboarding supplier contact
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierContact'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OnboardingSupplierContact'
multipart/form-data:
schema:
$ref: '#/components/schemas/OnboardingSupplierContact'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierContact'
description: ''
'400':
description: Validation error
/api/v1/companies/mor/onboarding-suppliers/{uuid}/contacts/{contact_uuid}/:
put:
operationId: api_v1_companies_mor_onboarding_suppliers_contacts_update
description: Full update (replace) of an onboarding supplier contact (MoR only).
summary: Replace onboarding supplier contact
parameters:
- in: path
name: contact_uuid
schema:
type: string
required: true
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierContact'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OnboardingSupplierContact'
multipart/form-data:
schema:
$ref: '#/components/schemas/OnboardingSupplierContact'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierContact'
description: ''
'400':
description: Validation error
'404':
description: Not found
patch:
operationId: api_v1_companies_mor_onboarding_suppliers_contacts_partial_update
description: Partial update of an onboarding supplier contact (MoR only).
summary: Partially update onboarding supplier contact
parameters:
- in: path
name: contact_uuid
schema:
type: string
required: true
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierContact'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierContact'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierContact'
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierContact'
description: ''
'400':
description: Validation error
'404':
description: Not found
delete:
operationId: api_v1_companies_mor_onboarding_suppliers_contacts_destroy
description: Delete an onboarding supplier contact (MoR only).
summary: Delete onboarding supplier contact
parameters:
- in: path
name: contact_uuid
schema:
type: string
required: true
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'204':
description: No content
'404':
description: Not found
/api/v1/companies/mor/onboarding-suppliers/{uuid}/create-final-supplier/:
post:
operationId: createFinalSupplier
description: Create the final supplier company for an onboarding supplier and mark it as ready to trade
summary: Create final supplier
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
description: UUID of the onboarding supplier
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FinalSupplierCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/FinalSupplierCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/FinalSupplierCreate'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
description: ''
'400':
content:
application/json:
schema:
description: Bad request - validation error
description: ''
/api/v1/companies/mor/onboarding-suppliers/{uuid}/payout-details/:
get:
operationId: api_v1_companies_mor_onboarding_suppliers_payout_details_retrieve
description: ViewSet for Merchant of Record users to manage onboarding suppliers
summary: Get onboarding supplier payout details
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
description: ''
'404':
description: Not found
post:
operationId: api_v1_companies_mor_onboarding_suppliers_payout_details_create
description: ViewSet for Merchant of Record users to manage onboarding suppliers
summary: Create onboarding supplier payout details
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
multipart/form-data:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
description: ''
'400':
description: Validation error or already exists
put:
operationId: api_v1_companies_mor_onboarding_suppliers_payout_details_update
description: Full replace of payout details. Record must already exist; use POST to create first.
summary: Replace onboarding supplier payout details (full update)
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
multipart/form-data:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
description: ''
'400':
description: Validation error
'404':
description: Not found
patch:
operationId: api_v1_companies_mor_onboarding_suppliers_payout_details_partial_update
description: Partial update of payout details. Record must already exist; use POST to create first.
summary: Partially update onboarding supplier payout details
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierPayoutDetails'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierPayoutDetails'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedOnboardingSupplierPayoutDetails'
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplierPayoutDetails'
description: ''
'400':
description: Validation error
'404':
description: Not found
/api/v1/companies/mor/onboarding-suppliers/{uuid}/unarchive/:
post:
operationId: api_v1_companies_mor_onboarding_suppliers_unarchive_create
description: Unarchive a previously archived onboarding supplier.
summary: Unarchive onboarding supplier
parameters:
- in: path
name: uuid
schema:
type: string
format: uuid
required: true
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
multipart/form-data:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
required: true
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingSupplier'
description: ''
'400':
content:
application/json:
schema:
description: Cannot unarchive
description: ''
/api/v1/companies/mor/onboarding-suppliers/staff-users/:
get:
operationId: getAvailableStaffUsers
description: Get available staff users that can be assigned as owners
summary: Get available staff users
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- in: query
name: search
schema:
type: string
description: Search filter for staff users
tags:
- Suppliers
security:
- tokenAuth: []
- cookieAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedStaffUserList'
description: ''
/api/v1/companies/onboarding/supplier/:
post:
operationId: api_v1_companies_onboarding_supplier_create
tags:
- Suppliers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SupplierOnboarding'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/SupplierOnboarding'
multipart/form-data:
schema:
$ref: '#/components/schemas/SupplierOnboarding'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserAuthToken'
description: ''
/api/v1/companies/suppliers/:
get:
operationId: api_v1_companies_suppliers_list
parameters:
- name: page
requi
# --- truncated at 32 KB (217 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/opply/refs/heads/main/openapi/opply-suppliers-api-openapi.yml