Opply Buyer self-onboarding API

The Buyer self-onboarding API from Opply — 16 operation(s) for buyer self-onboarding.

OpenAPI Specification

opply-buyer-self-onboarding-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Opply Activity Feed Buyer self-onboarding API
  version: 0.0.0
tags:
- name: Buyer self-onboarding
paths:
  /api/v1/companies/me/business-profile/update/:
    patch:
      operationId: api_v1_companies_me_business_profile_update_partial_update
      description: 'Write-only buyer onboarding endpoints scoped to `request.user_company`.

        Business profile + IBAN updates land here.'
      summary: Update the buyer Business Profile section.
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBusinessProfile'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedBusinessProfile'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedBusinessProfile'
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessProfile'
          description: ''
        '400':
          description: Validation errors.
  /api/v1/companies/me/delivery-locations/:
    post:
      operationId: api_v1_companies_me_delivery_locations_create
      description: 'Short-circuit a buyer-confirmed dedup: when the buyer picked "Use my

        saved address" on a "might be X" delivery card, link the external id to

        that existing address and return it — no new row, and no need for the

        full required-address validation (we''re not creating one).'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeliveryLocation'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DeliveryLocation'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DeliveryLocation'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeliveryLocation'
          description: ''
  /api/v1/companies/me/delivery-locations/match-preview/:
    post:
      operationId: api_v1_companies_me_delivery_locations_match_preview_create
      description: 'Preview which discovered delivery addresses the buyer already has

        saved, so the import review can show "already saved / might be your saved

        address" hints. Results are aligned by index to the request order.'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeliveryAddressMatchPreviewRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/DeliveryAddressMatchPreviewRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DeliveryAddressMatchPreviewRequest'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeliveryAddressMatchPreviewResponse'
          description: ''
  /api/v1/companies/me/onboarding-banking/update/:
    patch:
      operationId: api_v1_companies_me_onboarding_banking_update_partial_update
      description: 'Write-only buyer onboarding endpoints scoped to `request.user_company`.

        Business profile + IBAN updates land here.'
      summary: Update the buyer's IBAN (Banking & payments section).
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOnboardingBanking'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedOnboardingBanking'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedOnboardingBanking'
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingBanking'
          description: ''
  /api/v1/companies/me/onboarding-compliance-documents/:
    post:
      operationId: api_v1_companies_me_onboarding_compliance_documents_create
      description: '``POST /companies/me/onboarding-compliance-documents/`` — commit a

        staged compliance document (e.g. a sales tax exemption certificate).


        Copies the scrubbed source file out of the onboarding bucket into a

        ``companies.BuyerDocument`` with the matching ``DocumentType``, applies

        any buyer edits from the review screen, and (for sales tax exemptions)

        best-effort flips ``AccountDetail.tax_exemption_certificate``.

        Idempotent: re-committing the same staged row returns the existing

        document.'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingComplianceDocumentCommit'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OnboardingComplianceDocumentCommit'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OnboardingComplianceDocumentCommit'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingComplianceCommitResult'
          description: ''
  /api/v1/companies/me/onboarding-extractions/:
    get:
      operationId: api_v1_companies_me_onboarding_extractions_list
      description: '``/companies/me/onboarding-extractions/`` — the staging table the

        FE persists the agent''s proposal to so Step 2 survives a reload.


        Re-staging for the same batch destructively overwrites the

        previous proposal (OneToOne to batch). The FE never re-runs

        extraction silently — every overwrite happens after a new

        ``opplyExtractionComplete`` event.'
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - Buyer self-onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedOnboardingExtractionList'
          description: ''
    post:
      operationId: api_v1_companies_me_onboarding_extractions_create
      description: '``/companies/me/onboarding-extractions/`` — the staging table the

        FE persists the agent''s proposal to so Step 2 survives a reload.


        Re-staging for the same batch destructively overwrites the

        previous proposal (OneToOne to batch). The FE never re-runs

        extraction silently — every overwrite happens after a new

        ``opplyExtractionComplete`` event.'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingExtractionWrite'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OnboardingExtractionWrite'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OnboardingExtractionWrite'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingExtractionWrite'
          description: ''
  /api/v1/companies/me/onboarding-extractions/{uuid}/:
    get:
      operationId: api_v1_companies_me_onboarding_extractions_retrieve
      description: '``/companies/me/onboarding-extractions/`` — the staging table the

        FE persists the agent''s proposal to so Step 2 survives a reload.


        Re-staging for the same batch destructively overwrites the

        previous proposal (OneToOne to batch). The FE never re-runs

        extraction silently — every overwrite happens after a new

        ``opplyExtractionComplete`` event.'
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Buyer self-onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingExtraction'
          description: ''
  /api/v1/companies/me/onboarding-ingredients/:
    post:
      operationId: api_v1_companies_me_onboarding_ingredients_create
      description: 'Create `catalog.BuyerItem` rows for the buyer''s company. The

        post-onboarding Materials page reads from the same model

        (`/api/v1/catalog/items/`) so anything created here shows up

        immediately. `kind` discriminates ingredients from packaging.'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingIngredient'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OnboardingIngredient'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OnboardingIngredient'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingIngredient'
          description: ''
  /api/v1/companies/me/onboarding-ingredients/match-preview/:
    post:
      operationId: api_v1_companies_me_onboarding_ingredients_match_preview_create
      description: 'Preview which discovered materials already exist in the buyer''s

        catalogue, so the import review can show "already in your materials"

        (exact — merges at commit) / "might be your existing X" (fuzzy) hints.

        Scoped to the buyer''s own `BuyerItem` rows.'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ItemMatchPreviewRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ItemMatchPreviewRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ItemMatchPreviewRequest'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemMatchPreviewResponse'
          description: ''
  /api/v1/companies/me/onboarding-invoice-batches/:
    post:
      operationId: api_v1_companies_me_onboarding_invoice_batches_create
      description: '``/companies/me/onboarding-invoice-batches/`` — create or read a

        batch the buyer uploads invoices into.'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingInvoiceBatch'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OnboardingInvoiceBatch'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OnboardingInvoiceBatch'
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingInvoiceBatch'
          description: ''
  /api/v1/companies/me/onboarding-invoice-batches/{uuid}/:
    get:
      operationId: api_v1_companies_me_onboarding_invoice_batches_retrieve
      description: '``/companies/me/onboarding-invoice-batches/`` — create or read a

        batch the buyer uploads invoices into.'
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Buyer self-onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingInvoiceBatch'
          description: ''
  /api/v1/companies/me/onboarding-invoices/:
    post:
      operationId: api_v1_companies_me_onboarding_invoices_create
      description: '``/companies/me/onboarding-invoices/`` — multipart upload, read,

        and soft-delete for a single invoice file.


        The bytes themselves are written to a private S3 bucket via

        ``invoice_storage.upload_to_private_bucket``; the row stores only

        the object key. ``content`` returns a 15-minute signed URL when

        the agent (or the buyer''s FE) needs to read the file.'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OnboardingInvoiceUpload'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OnboardingInvoiceUpload'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingInvoiceUpload'
          description: ''
  /api/v1/companies/me/onboarding-invoices/{uuid}/:
    get:
      operationId: api_v1_companies_me_onboarding_invoices_retrieve
      description: '``/companies/me/onboarding-invoices/`` — multipart upload, read,

        and soft-delete for a single invoice file.


        The bytes themselves are written to a private S3 bucket via

        ``invoice_storage.upload_to_private_bucket``; the row stores only

        the object key. ``content`` returns a 15-minute signed URL when

        the agent (or the buyer''s FE) needs to read the file.'
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Buyer self-onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingInvoiceDetail'
          description: ''
    delete:
      operationId: api_v1_companies_me_onboarding_invoices_destroy
      description: '``/companies/me/onboarding-invoices/`` — multipart upload, read,

        and soft-delete for a single invoice file.


        The bytes themselves are written to a private S3 bucket via

        ``invoice_storage.upload_to_private_bucket``; the row stores only

        the object key. ``content`` returns a 15-minute signed URL when

        the agent (or the buyer''s FE) needs to read the file.'
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Buyer self-onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '204':
          description: No response body
  /api/v1/companies/me/onboarding-invoices/{uuid}/content/:
    get:
      operationId: api_v1_companies_me_onboarding_invoices_content_retrieve
      description: '``/companies/me/onboarding-invoices/`` — multipart upload, read,

        and soft-delete for a single invoice file.


        The bytes themselves are written to a private S3 bucket via

        ``invoice_storage.upload_to_private_bucket``; the row stores only

        the object key. ``content`` returns a 15-minute signed URL when

        the agent (or the buyer''s FE) needs to read the file.'
      summary: Return a short-TTL signed URL the agent uses to read the invoice bytes.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - Buyer self-onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingInvoiceContent'
          description: ''
  /api/v1/companies/me/onboarding-suppliers/:
    get:
      operationId: api_v1_companies_me_onboarding_suppliers_list
      description: 'Create + list `Supplier` rows attached to the buyer''s `BuyerOnboarding`.


        The agent commits one row per extracted supplier. The list action backs

        the post-onboarding "Suppliers in progress" tab, which surfaces rows the

        buyer submitted that the MoR has not yet reviewed (`pending_review`).'
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - Buyer self-onboarding
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedBuyerOnboardingSupplierSubmissionList'
          description: ''
    post:
      operationId: api_v1_companies_me_onboarding_suppliers_create
      description: 'Create + list `Supplier` rows attached to the buyer''s `BuyerOnboarding`.


        The agent commits one row per extracted supplier. The list action backs

        the post-onboarding "Suppliers in progress" tab, which surfaces rows the

        buyer submitted that the MoR has not yet reviewed (`pending_review`).'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuyerOnboardingSupplierSubmissionRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/BuyerOnboardingSupplierSubmissionRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BuyerOnboardingSupplierSubmissionRequest'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerOnboardingSupplierSubmission'
          description: ''
  /api/v1/companies/me/onboarding-suppliers/match-preview/:
    post:
      operationId: api_v1_companies_me_onboarding_suppliers_match_preview_create
      description: 'Preview which discovered suppliers the buyer ALREADY has — onboarded,

        mid-onboarding, or a pending submission — so the import review can show

        "you already have this / it''s already being set up" hints before commit.


        Scoped to the buyer''s own suppliers only — a graph match the buyer

        doesn''t have at all is the MoR''s concern (surfaced at commit via the

        submission''s `suggested_supplier_company`), never shown to the buyer.'
      tags:
      - Buyer self-onboarding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierMatchPreviewRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SupplierMatchPreviewRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SupplierMatchPreviewRequest'
        required: true
      security:
      - tokenAuth: []
      - cookieAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupplierMatchPreviewResponse'
          description: ''
components:
  schemas:
    ExtractedComplianceDocumentRead:
      type: object
      description: Nested read shape for ``OnboardingExtractionSerializer``.
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        source_invoice_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        compliance_type:
          allOf:
          - $ref: '#/components/schemas/ComplianceDocumentTypeEnum'
          readOnly: true
        type_hint:
          type: string
          readOnly: true
          description: Certification scheme/type as commonly named (e.g. 'ISO 9001'); matched against the DocumentType taxonomy at commit time.
        title:
          type: string
          readOnly: true
          description: Display title as printed on the document.
        holder_name:
          type: string
          readOnly: true
          description: Entity the exemption/certificate is issued to — usually the buyer.
        issuing_authority:
          type: string
          readOnly: true
          description: Entity that issued the certificate (e.g. 'Texas Comptroller of Public Accounts').
        jurisdiction:
          type: string
          readOnly: true
          description: State/region as printed on the certificate, e.g. 'Texas'.
        us_state:
          type: string
          readOnly: true
          description: USPS two-letter code for the US state/territory the certificate applies in (e.g. 'TX'). Stored as sent by the agent; validated against companies.enums.USState at commit time, mirroring how country is validated.
        country:
          type: string
          readOnly: true
          description: ISO-3166-1 alpha-2 country code.
        certificate_number:
          type: string
          readOnly: true
          description: Certificate/exemption number as printed on the document.
        issue_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        expiry_date:
          type: string
          format: date
          readOnly: true
          nullable: true
          description: Null when the certificate shows no expiry (common for US exemption certificates).
        confidence:
          allOf:
          - $ref: '#/components/schemas/ExtractionConfidenceEnum'
          readOnly: true
        evidence:
          type: string
          readOnly: true
          description: Verbatim snippet from the source document (capped at 300 chars by the serializer).
        gaps:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
        committed_document_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
      required:
      - certificate_number
      - committed_document_uuid
      - compliance_type
      - confidence
      - country
      - evidence
      - expiry_date
      - gaps
      - holder_name
      - issue_date
      - issuing_authority
      - jurisdiction
      - source_invoice_uuid
      - title
      - type_hint
      - us_state
      - uuid
    ExtractionConfidenceEnum:
      enum:
      - high
      - medium
      - low
      - manual
      type: string
      description: '* `high` - High

        * `medium` - Medium

        * `low` - Low

        * `manual` - Manual'
    LegalEntityTypeEnum:
      enum:
      - ltd
      - llp
      - plc
      - sole_trader
      - partnership
      - other
      type: string
      description: '* `ltd` - Limited Company (Ltd)

        * `llp` - Limited Liability Partnership (LLP)

        * `plc` - Public Limited Company (PLC)

        * `sole_trader` - Sole Trader

        * `partnership` - Partnership

        * `other` - Other'
    Country:
      enum:
      - AF
      - AX
      - AL
      - DZ
      - AS
      - AD
      - AO
      - AI
      - AQ
      - AG
      - AR
      - AM
      - AW
      - AU
      - AT
      - AZ
      - BS
      - BH
      - BD
      - BB
      - BY
      - BE
      - BZ
      - BJ
      - BM
      - BT
      - BO
      - BQ
      - BA
      - BW
      - BV
      - BR
      - IO
      - BN
      - BG
      - BF
      - BI
      - CV
      - KH
      - CM
      - CA
      - KY
      - CF
      - TD
      - CL
      - CN
      - CX
      - CC
      - CO
      - KM
      - CG
      - CD
      - CK
      - CR
      - CI
      - HR
      - CU
      - CW
      - CY
      - CZ
      - DK
      - DJ
      - DM
      - DO
      - EC
      - EG
      - SV
      - GQ
      - ER
      - EE
      - SZ
      - ET
      - FK
      - FO
      - FJ
      - FI
      - FR
      - GF
      - PF
      - TF
      - GA
      - GM
      - GE
      - DE
      - GH
      - GI
      - GR
      - GL
      - GD
      - GP
      - GU
      - GT
      - GG
      - GN
      - GW
      - GY
      - HT
      - HM
      - VA
      - HN
      - HK
      - HU
      - IS
      - IN
      - ID
      - IR
      - IQ
      - IE
      - IM
      - IL
      - IT
      - JM
      - JP
      - JE
      - JO
      - KZ
      - KE
      - KI
      - KW
      - KG
      - LA
      - LV
      - LB
      - LS
      - LR
      - LY
      - LI
      - LT
      - LU
      - MO
      - MG
      - MW
      - MY
      - MV
      - ML
      - MT
      - MH
      - MQ
      - MR
      - MU
      - YT
      - MX
      - FM
      - MD
      - MC
      - MN
      - ME
      - MS
      - MA
      - MZ
      - MM
      - NA
      - NR
      - NP
      - NL
      - NC
      - NZ
      - NI
      - NE
      - NG
      - NU
      - NF
      - KP
      - MK
      - XI
      - MP
      - 'NO'
      - OM
      - PK
      - PW
      - PS
      - PA
      - PG
      - PY
      - PE
      - PH
      - PN
      - PL
      - PT
      - PR
      - QA
      - RE
      - RO
      - RU
      - RW
      - BL
      - SH
      - KN
      - LC
      - MF
      - PM
      - VC
      - WS
      - SM
      - ST
      - SA
      - SN
      - RS
      - SC
      - SL
      - SG
      - SX
      - SK
      - SI
      - SB
      - SO
      - ZA
      - GS
      - KR
      - SS
      - ES
      - LK
      - SD
      - SR
      - SJ
      - SE
      - CH
      - SY
      - TW
      - TJ
      - TZ
      - TH
      - TL
      - TG
      - TK
      - TO
      - TT
      - TN
      - TR
      - TM
      - TC
      - TV
      - UG
      - UA
      - AE
      - GB
      - UM
      - US
      - UY
      - UZ
      - VU
      - VE
      - VN
      - VG
      - VI
      - WF
      - EH
      - YE
      - ZM
      - ZW
      type: string
      description: '* `AF` - Afghanistan

        * `AX` - Åland Islands

        * `AL` - Albania

        * `DZ` - Algeria

        * `AS` - American Samoa

        * `AD` - Andorra

        * `AO` - Angola

        * `AI` - Anguilla

        * `AQ` - Antarctica

        * `AG` - Antigua and Barbuda

        * `AR` - Argentina

        * `AM` - Armenia

        * `AW` - Aruba

        * `AU` - Australia

        * `AT` - Austria

        * `AZ` - Azerbaijan

        * `BS` - Bahamas

        * `BH` - Bahrain

        * `BD` - Bangladesh

        * `BB` - Barbados

        * `BY` - Belarus

        * `BE` - Belgium

        * `BZ` - Belize

        * `BJ` - Benin

        * `BM` - Bermuda

        * `BT` - Bhutan

        * `BO` - Bolivia

        * `BQ` - Bonaire, Sint Eustatius and Saba

        * `BA` - Bosnia and Herzegovina

        * `BW` - Botswana

        * `BV` - Bouvet Island

        * `BR` - Brazil

        * `IO` - British Indian Ocean Territory

        * `BN` - Brunei

        * `BG` - Bulgaria

        * `BF` - Burkina Faso

        * `BI` - Burundi

        * `CV` - Cabo Verde

        * `KH` - Cambodia

        * `CM` - Cameroon

        * `CA` - Canada

        * `KY` - Cayman Islands

        * `CF` - Central African Republic

        * `TD` - Chad

        * `CL` - Chile

        * `CN` - China

        * `CX` - Christmas Island

        * `CC` - Cocos (Keeling) Islands

        * `CO` - Colombia

        * `KM` - Comoros

        * `CG` - Congo

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

        * `CK` - Cook Islands

        * `CR` - Costa Rica

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

        * `HR` - Croatia

        * `CU` - Cuba

        * `CW` - Curaçao

        * `CY` - Cyprus

        * `CZ` - Czechia

        * `DK` - Denmark

        * `DJ` - Djibouti

        * `DM` - Dominica

        * `DO` - Dominican Republic

        * `EC` - Ecuador

        * `EG` - Egypt

        * `SV` - El Salvador

        * `GQ` - Equatorial Guinea

        * `ER` - Eritrea

        * `EE` - Estonia

        * `SZ` - Eswatini

        * `ET` - Ethiopia

        * `FK` - Falkland Islands (Malvinas)

        * `FO` - Faroe Islands

        * `FJ` - Fiji

        * `FI` - Finland

        * `FR` - France

        * `GF` - French Guiana

        * `PF` - French Polynesia

        * `TF` - French Southern Territories

        * `GA` - Gabon

        * `GM` - Gambia

        * `GE` - Georgia

        * `DE` - Germany

        * `GH` - Ghana

        * `GI` - Gibraltar

        * `GR` - Greece

        * `GL` - Greenland

        * `GD` - Grenada

        * `GP` - Guadeloupe

        * `GU` - Guam

        * `GT` - Guatemala

        * `GG` - Guernsey

        * `GN` - Guinea

        * `GW` - Guinea-Bissau

        * `GY` - Guyana

        * `HT` - Haiti

        * `HM` - Heard Island and McDonald Islands

        * `VA` - Holy See

        * `HN` - Honduras

        * `HK` - Hong Kong

        * `HU` - Hungary

        * `IS` - Iceland

        * `IN` - India

        * `ID` - Indonesia

        * `IR` - Iran

        * `IQ` - Iraq

        * `IE` - Ireland

        * `IM` - Isle of Man

        * `IL` - Israel

        * `IT` - Italy

        * `JM` - Jamaica

        * `JP` - Japan

        * `JE` - Jersey

        * `JO` - Jordan

        * `KZ` - Kazakhstan

        * `KE` - Kenya

        * `KI` - Kiribati

        * `KW` - Kuwait

        * `KG` - Kyrgyzstan

        * `LA` - Laos

        * `LV` - Latvia

        * `LB` - Lebanon

        * `LS` - Lesotho

        * `LR` - Liberia

        * `LY` - Libya

        * `LI` - Liechtenstein

        * `LT` - Lithuania

        * `LU` - Luxembourg

        * `MO` - Macao

        * `MG` - Madagascar

        * `MW` - Malawi

        * `MY` - Malaysia

        * `MV` - Maldives

        * `ML` - Mali

        * `MT` - Malta

        * `MH` - Marshall Islands

        * `MQ` - Martinique

        * `MR` - Mauritania

        * `MU` - Mauritius

        * `YT` - Mayotte

        * `MX` - Mexico

        * `FM` - Micronesia

        * `MD` - Moldova

        * `MC` - Monaco

        * `MN` - Mongolia

        * `ME` - Montenegro

        * `MS` - Montserrat

        * `MA` - Morocco

        * `MZ` - Mozambique

        * `MM` - Myanmar

        * `NA` - Namibia

        * `NR` - Nauru

        * `NP` - Nepal

        * `NL` - Netherlands

        * `NC` - New Caledonia

        * `NZ` - New Zealand

        * `NI` - Nicaragua

        * `NE` - Niger

        * `NG` - Nigeria

        * `NU` - Niue

        * `NF` - Norfolk Island

        * `KP` - North Korea

        * `MK` - North Macedonia

        * `XI` - Northern Ireland

        * `MP` - Northern Mariana Islands

        * `NO` - Norway

        * `OM` - Oman

        * `PK` - Pakistan

        * `PW` - Palau

        * `PS` - Palestine, State of

        * `PA` -

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