Vendasta Sales Orders API

The SalesOrders API from Vendasta — 3 operation(s) for salesorders.

Operations 3

POST /v1/order/create Create Sales Order #
POST /v1/order/get Get Sales Order #
POST /v1/order/list List Sales Orders #

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/vendasta-salesorders-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vendasta-salesorders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sales Orders API
  version: 1.134.0
servers:
- description: Production
  url: https://prod.apigateway.co/grpc
tags:
- name: SalesOrders
paths:
  /v1/order/create:
    post:
      operationId: SalesOrders_CreateSalesOrder
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreateSalesOrderRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CreateSalesOrderResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
          description: An unexpected error response.
      security:
      - OAuth2:
        - order
      summary: Create Sales Order
      tags:
      - SalesOrders
  /v1/order/get:
    post:
      operationId: SalesOrders_GetSalesOrder
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1GetSalesOrderRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetSalesOrderResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
          description: An unexpected error response.
      security:
      - OAuth2:
        - order
        - order:read
      summary: Get Sales Order
      tags:
      - SalesOrders
  /v1/order/list:
    post:
      operationId: SalesOrders_ListSalesOrder
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1ListSalesOrderRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1ListSalesOrderResponse'
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
          description: An unexpected error response.
      security:
      - OAuth2:
        - order
        - order:read
      summary: List Sales Orders
      tags:
      - SalesOrders
components:
  schemas:
    v1BillingPeriod:
      properties:
        duration:
          $ref: '#/components/schemas/salesv1Duration'
        endDate:
          format: date-time
          title: The end date of the billing period
          type: string
        startDate:
          format: date-time
          title: The start date of the billing period
          type: string
      title: The Time frame to bill for
      type: object
    v1CreateSalesOrderRequest:
      properties:
        attachments:
          items:
            $ref: '#/components/schemas/v1Attachment'
          title: Data for the attachments on the order
          type: array
        businessId:
          title: ID of the business that the order is for
          type: string
        commonFields:
          items:
            $ref: '#/components/schemas/v1CommonField'
          title: A list of additional information that is shared across multiple products
          type: array
        contractDuration:
          $ref: '#/components/schemas/salesv1Duration'
        customFields:
          items:
            $ref: '#/components/schemas/v1CustomField'
          title: A list of additional unique information pertaining to an individual product
          type: array
        customerAttachments:
          items:
            $ref: '#/components/schemas/v1Attachment'
          title: Data for the customer attachments on the order
          type: array
        customerNotes:
          title: Additional notes written for customer by a salesperson
          type: string
        enforceContractTerm:
          title: Indicates whether to enforce the contract term
          type: boolean
        extraFields:
          items:
            $ref: '#/components/schemas/v1Field'
          title: Extra fields are the fields that a partner (or market) admin has added to their orders by default to be filled
          type: array
        idempotencyKey:
          title: Optional key used to prevent request duplication and allows safety when retrying requests
          type: string
        lineItems:
          items:
            $ref: '#/components/schemas/v1LineItem'
          title: Lineitems replace Products and Packages
          type: array
        marketId:
          title: ID of the market that the order belongs to
          type: string
        notes:
          title: Additional notes written by a salesperson for admin only
          type: string
        opportunityIds:
          items:
            type: string
          title: Opportunity id(s) that the order is fulfilling
          type: array
        orderIsSmbPayable:
          title: Indicates whether the order should be charged to the SMB or not
          type: boolean
        origin:
          $ref: '#/components/schemas/v1Origin'
        packages:
          items:
            $ref: '#/components/schemas/v1Package'
          title: Data for the package(s) being activated upon approval of this order
          type: array
        partnerId:
          title: ID of the partner that the order belongs to
          type: string
        products:
          items:
            $ref: '#/components/schemas/v1Product'
          title: Data for the product(s) being activated upon approval of this order
          type: array
        quoteId:
          title: ID of the quote associated with the order if the order was created from a quote
          type: string
        requestedActivation:
          format: date-time
          title: Time submitted by a salesperson that indicates when an administrator should activate the products on the order
          type: string
        salespersonId:
          title: ID of the salesperson who should attend to the order
          type: string
        tags:
          items:
            type: string
          title: Tags on the order
          type: array
        useCustomerPrice:
          title: 'Indicates whether or not to automatically resolve the line items'' retail pricing.

            The request''s line items are expected to have nil revenue if this is set to true.

            For more information and error scenarios, see Confluence docs:

            https://vendasta.jira.com/wiki/spaces/PSYC/pages/2211971323/New+use+customer+price+on+sales-orders+Create+APIs'
          type: boolean
      title: Containing information to create a new order
      type: object
    v1GetSalesOrderResponse:
      properties:
        order:
          $ref: '#/components/schemas/v1Order'
      title: Response of getting an order
      type: object
    v1CustomerRecipient:
      description: Details about the customer who receives the order.
      properties:
        firstName:
          description: Output only. The user's first name.
          readOnly: true
          type: string
        lastName:
          description: Output only. The user's last name.
          readOnly: true
          type: string
        userId:
          description: Output only. The ID of the user.
          readOnly: true
          type: string
      title: Customer Recipient
      type: object
    v1TaxOptions:
      properties:
        initialAmount:
          format: int64
          title: The initial amount (in cents) of tax to be applied to an order after all tax rules have been taken into account
          type: string
        label:
          title: Setting that defines a name for a given tax that should be applied to an order
          type: string
        percentageMultiplier:
          format: double
          title: Setting that defines a tax percentage multiplier with a precision between 0.0000 and 1.0000
          type: number
        taxRateId:
          title: The id of the tax rate that this tax corresponds to
          type: string
      type: object
    v1Salesperson:
      description: Details about the salesperson who submitted the order.
      properties:
        email:
          description: Output only. The email address of the salesperson.
          readOnly: true
          type: string
        firstName:
          description: Output only. The first name of the salesperson.
          readOnly: true
          type: string
        lastName:
          description: Output only. The last name of the salesperson.
          readOnly: true
          type: string
        phoneNumber:
          description: Output only. The phone number of the salesperson.
          readOnly: true
          type: string
      title: Salesperson
      type: object
    v1Order:
      description: A sales order representing a request to activate products for a business.
      properties:
        addonActivations:
          description: Output only. The list of addons with their corresponding activation status.
          items:
            $ref: '#/components/schemas/v1AddonActivation'
          readOnly: true
          type: array
        agreements:
          description: Output only. The terms that a customer has agreed to for this order.
          items:
            $ref: '#/components/schemas/v1Agreement'
          readOnly: true
          type: array
        attachments:
          description: Optional. Attachments on the order.
          items:
            $ref: '#/components/schemas/v1Attachment'
          type: array
        business:
          $ref: '#/components/schemas/v1Business'
        businessId:
          description: Required. The business the order is being made for.
          type: string
        commonFields:
          description: Optional. Common field answers for the packages.
          items:
            $ref: '#/components/schemas/v1CommonField'
          type: array
        contractDuration:
          $ref: '#/components/schemas/salesv1Duration'
        created:
          description: Output only. Time the order was submitted by a salesperson.
          format: date-time
          readOnly: true
          type: string
        customFields:
          description: Optional. Custom field answers for the packages.
          items:
            $ref: '#/components/schemas/v1CustomField'
          type: array
        customerAttachments:
          description: Optional. Customer attachments on the order.
          items:
            $ref: '#/components/schemas/v1Attachment'
          type: array
        customerNotes:
          description: Optional. Notes for the customer from the salesperson/admin.
          type: string
        customerRecipient:
          $ref: '#/components/schemas/v1CustomerRecipient'
        declinedReason:
          title: 'DEPRECATED: declined_reason is now added to the StatusHistoryItem

            The reason the order was declined'
          type: string
        enforceContractTerm:
          description: Optional. Indicates whether to enforce the contract term.
          type: boolean
        expiryDate:
          description: Output only. The expiry date for the order.
          format: date-time
          readOnly: true
          type: string
        extraFields:
          description: Optional. Extra fields are the fields that a partner (or market) admin has added to their orders by default to be filled.
          items:
            $ref: '#/components/schemas/v1Field'
          type: array
        finalizedAt:
          description: Output only. When the order's totals and taxes were locked in, used as the invoice issued date.
          format: date-time
          readOnly: true
          type: string
        fulfillmentStatus:
          $ref: '#/components/schemas/v1FulfillmentOrderStatus'
        hasFulfillment:
          description: Output only. Determines if the sales order has any fulfillment forms associated with it.
          readOnly: true
          type: boolean
        idempotencyKey:
          description: Optional. Key used to prevent request duplication and allows safety when retrying requests.
          type: string
        invoiceId:
          description: Output only. The billing invoice ID created from this order during the charge workflow.
          readOnly: true
          type: string
        leasedToAutomations:
          format: date-time
          title: 'DEPRECATED: No longer supported'
          type: string
        lineItems:
          description: Optional. Line items that make up the order.
          items:
            $ref: '#/components/schemas/v1LineItem'
          type: array
        marketId:
          description: Optional. The market the order is being made under.
          type: string
        notes:
          description: Optional. Notes for the partner administrator from the salesperson.
          type: string
        offerExpiry:
          description: 'Output only. The most recently added date that the customer must approve this order by. This cannot be set on creation and only

            when sending the order to a customer. It is valid that this is in the past for expired orders, or orders that have

            made it through the customer approval stage.'
          format: date-time
          readOnly: true
          type: string
        opportunityIds:
          description: Optional. The opportunities that are being used for the order.
          items:
            type: string
          type: array
        orderId:
          description: Output only. The unique identifier of the order.
          readOnly: true
          type: string
        orderIsSmbPayable:
          description: Optional. Indicates whether the order should be charged to the SMB or not.
          type: boolean
        origin:
          $ref: '#/components/schemas/v1Origin'
        packages:
          items:
            $ref: '#/components/schemas/v1Package'
          title: Packages in the order
          type: array
        partnerId:
          description: Required. The partner the order is being made under.
          type: string
        paymentMethodToken:
          description: Optional. An id used by BIY sales orders to associate a payment method.
          type: string
        productActivations:
          description: Output only. The list of products with their corresponding activation status.
          items:
            $ref: '#/components/schemas/v1ProductActivation'
          readOnly: true
          type: array
        products:
          items:
            $ref: '#/components/schemas/v1Product'
          title: Products in the order
          type: array
        quoteId:
          description: Optional. The id of the quote associated to the order if the order was created from a quote.
          type: string
        requestedActivation:
          description: Optional. The requested activation date for the order's products.
          format: date-time
          type: string
        retailSubscriptionGroups:
          additionalProperties:
            $ref: '#/components/schemas/v1RetailSubscriptionGroup'
          description: Output only. The retail subscription groups on the order.
          readOnly: true
          type: object
        salesperson:
          $ref: '#/components/schemas/v1Salesperson'
        salespersonId:
          description: Required. The salesperson who submitted the order.
          type: string
        status:
          $ref: '#/components/schemas/salesordersv1Status'
        statusHistory:
          description: Output only. The historical list of status updates that have taken place on the order.
          items:
            $ref: '#/components/schemas/v1StatusHistoryItem'
          readOnly: true
          type: array
        tags:
          description: Optional. Tags for orders.
          items:
            type: string
          type: array
        taxOptions:
          description: Output only. Options for adding tax to orders.
          items:
            $ref: '#/components/schemas/v1TaxOptions'
          readOnly: true
          type: array
      required:
      - salespersonId
      - partnerId
      - businessId
      title: Order
      type: object
    v1CustomField:
      description: A set of custom field answers that are unique to a specific product or addon.
      properties:
        addonKey:
          $ref: '#/components/schemas/v1AddonKey'
        fields:
          description: Optional. List of custom fields for a given product.
          items:
            $ref: '#/components/schemas/v1Field'
          type: array
        productId:
          description: Optional. Unique identifier of the product that the custom questions belong to. Will not be provided if the custom field belongs to an addon.
          type: string
      title: Custom Field
      type: object
    salesv1Duration:
      properties:
        duration:
          $ref: '#/components/schemas/v1DurationPeriod'
        value:
          description: Value for duration of time of a given operation.
          format: int64
          type: string
      type: object
    v1ListSalesOrderRequestSortDirection:
      default: ASCENDING
      enum:
      - ASCENDING
      - DESCENDING
      title: The directions that a result set can be sorted in
      type: string
    v1Field:
      description: An information field pertaining to a product, containing a question and its answer.
      properties:
        answer:
          description: Optional. Response related to the question of the field_id.
          type: string
        description:
          description: Optional. The description of the field.
          type: string
        fieldId:
          description: Required. Unique identifier of a custom or common field.
          type: string
        fieldType:
          $ref: '#/components/schemas/v1FieldType'
        label:
          description: Optional. The question for the custom or common field.
          type: string
        prefix:
          description: Optional. For textbox fields, this string will be displayed in front of the textbox.
          type: string
        regexErrorMessage:
          description: Optional. The error message displayed if the regex_validator does not match the answer.
          type: string
        regexValidator:
          description: Optional. A regex string used to validate a field's answer.
          type: string
        suffix:
          description: Optional. For textbox fields, this string will be displayed behind the textbox.
          type: string
      required:
      - fieldId
      title: Field
      type: object
    LineItemAppKey:
      properties:
        appId:
          type: string
        editionId:
          type: string
        packageId:
          description: A package id is optional, it is used to group line items together in a package.
          type: string
        packageInstanceId:
          description: 'A package instance id keeps track of the package instance that a line item belongs to. For example, if the customer purchases two packages that contain the same product,

            this will identify which package the product belongs to.


            This must be provided if a package id is provided, and should not be provided if there is no package id provided. The ID should be a uuid.'
          type: string
      type: object
    v1Source:
      default: SOURCE_INVALID
      enum:
      - SOURCE_INVALID
      - SOURCE_SYSTEM
      - SOURCE_SYSTEM_ADMIN
      type: string
    v1ListSalesOrderRequestFilters:
      properties:
        businessId:
          title: Singular business filter
          type: string
        created:
          $ref: '#/components/schemas/v1ListSalesOrderRequestDateRangeFilter'
        expiryDate:
          $ref: '#/components/schemas/v1ListSalesOrderRequestDateRangeFilter'
        includeArchivedOrders:
          title: Will include archived orders if true
          type: boolean
        marketId:
          title: 'DEPRECATED: Singular market filter. Use market_ids instead. If both are supplied, market_ids will be used instead'
          type: string
        marketIds:
          items:
            type: string
          title: Multi market request
          type: array
        orderId:
          title: 'DEPRECATED: Singular order identifier to filter for. Use order_ids instead. If both are supplied, order_ids will be used instead'
          type: string
        orderIds:
          items:
            type: string
          title: Multiple order identifiers to filter for
          type: array
        packageId:
          title: Singular package filter
          type: string
        productEditionId:
          title: Singular product edition filter
          type: string
        productId:
          title: Singular product filter
          type: string
        requestedActivation:
          $ref: '#/components/schemas/v1ListSalesOrderRequestDateRangeFilter'
        salespersonId:
          title: 'DEPRECATED: Singular salesperson filter.  Use salesperson_ids instead.  If both are supplied, salesperson_ids

            will be used instead'
          type: string
        salespersonIds:
          items:
            type: string
          title: Multiple salesperson filter
          type: array
        statuses:
          items:
            $ref: '#/components/schemas/salesordersv1Status'
          title: Multiple status filter
          type: array
        tags:
          items:
            type: string
          title: Tags required to be on the order
          type: array
        untagged:
          description: Will filter for orders that don't have tags if true.
          type: boolean
      title: Filters to list sales orders based on given filter criterias
      type: object
    v1Origin:
      default: SSC
      enum:
      - SSC
      - VBC
      - PC
      - IMPORT
      title: Origin of the create request, whether a salesperson or smb created it
      type: string
    v1RetailSubscriptionGroupDisplayOption:
      default: DISPLAY_OPTION_INVALID
      enum:
      - DISPLAY_OPTION_INVALID
      - SHOW_CONTENT_SHOW_PRICES
      - SHOW_CONTENT_HIDE_PRICES
      - HIDE_CONTENT_HIDE_PRICES
      type: string
    v1Revenue:
      properties:
        revenueComponents:
          items:
            $ref: '#/components/schemas/v1RevenueComponent'
          type: array
      title: Revenue represents the retail price of an order
      type: object
    v1GetSalesOrderRequest:
      properties:
        businessId:
          title: The business the order belongs to
          type: string
        orderId:
          title: Unique identifier of an order
          type: string
        projectionFilter:
          $ref: '#/components/schemas/v1SalesOrderProjectionFilter'
      title: Containing information to get an order
      type: object
    googlerpcStatus:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        message:
          type: string
      type: object
    v1AddonKey:
      properties:
        addonId:
          title: Unique identifier of an addon
          type: string
        appId:
          title: The parent app for the addon
          type: string
      type: object
    v1RetailSubscriptionGroup:
      properties:
        displayOption:
          $ref: '#/components/schemas/v1RetailSubscriptionGroupDisplayOption'
        iconUrl:
          title: The icon url of the retail subscription group
          type: string
        name:
          title: The name of the retail subscription group
          type: string
        sourceIdentifier:
          title: The source identifier of the retail subscription group
          type: string
      type: object
    v1RevenueComponent:
      properties:
        isStartingRevenue:
          title: The indication if this is only the starting price or the actual price
          type: boolean
        period:
          $ref: '#/components/schemas/v1RevenuePeriod'
        value:
          description: The value in the smallest common currency unit i.e. cents. Therefore 4000 would represent $40.00.
          format: int64
          type: string
      type: object
    v1CommonField:
      description: A field answer that may be shared across multiple products or addons.
      properties:
        addonKeys:
          description: Optional. List of addon keys that share the common field.
          items:
            $ref: '#/components/schemas/v1AddonKey'
          type: array
        field:
          $ref: '#/components/schemas/v1Field'
        productIds:
          description: Optional. List of unique product identifiers that share the common field.
          items:
            type: string
          type: array
      title: Common Field
      type: object
    v1RevenuePeriod:
      default: ONETIME
      enum:
      - ONETIME
      - DAILY
      - WEEKLY
      - BIWEEKLY
      - MONTHLY
      - YEARLY
      type: string
    salesordersv1Status:
      default: SUBMITTED
      description: "- SUBMITTED: Submitted is the status when an order is ready for admin approval\n - APPROVED: Approved is the status when an order is has been approved by an admin\n - DECLINED: Declined is the status when an order is has been declined by an admin or a smb\n - DRAFTED: Drafted is currently not used but would be the state the order can be created in before it's sent to someone else\n - FULFILLED: Fulfilled is the status when an order has had all of the products activated\n - PROCESSING: Processing is the status when an order is currently activating the products\n - ACTIVATION_ERRORS: ActivationErrors is the status when an order is has encountered an error when activating products\n - ARCHIVED: Archived is the status to use when hiding the orders from the ui unless explicitly asked for\n - SUBMITTED_FOR_CUSTOMER_APPROVAL: SubmittedForCustomerApproval is the status when an order has been sent to a SMB to approve\n - CANCELLATION_REQUESTED: CancellationRequested is the status when a sales person requests to cancel a full order\n - CANCELLED: Cancelled is the status when a after an admin has approved a Cancellation\n - SCHEDULED_ACTIVATION: ScheduledActivation is the status of an order after the admin requests to activate products on the contract start date\n - AWAITING_PAYMENT: AwaitingPayment is the status of a BIY order on creation before we attempt to charge\n - PROCESSING_PAYMENT: ProcessingPayment is the status of a BIY order while waiting on confirmation for the charge\n - RESUBMITTED: Resubmitted is the status of an order when it has been resubmitted for admin approval, after being submitted at least one other time in the past"
      enum:
      - SUBMITTED
      - APPROVED
      - DECLINED
      - DRAFTED
      - FULFILLED
      - PROCESSING
      - ACTIVATION_ERRORS
      - ARCHIVED
      - SUBMITTED_FOR_CUSTOMER_APPROVAL
      - CANCELLATION_REQUESTED
      - CANCELLED
      - SCHEDULED_ACTIVATION
      - AWAITING_PAYMENT
      - PROCESSING_PAYMENT
      - RESUBMITTED
      title: The different statuses representing any given state an order can be in
      type: string
    v1LineItem:
      properties:
        appKey:
          $ref: '#/components/schemas/LineItemAppKey'
        autoBillable:
          title: 'DEPRECATED: use non_billable instead'
          type: boolean
        billToRecipientId:
          description: 'The billing recipient for this line item.

            When set to a partner_id, wholesale billing applies (default behavior).

            When set to an account_group_id, retail billing is triggered for that customer.

            When empty, defaults to the merchant (partner) paying wholesale.'
          type: string
        billingPeriod:
          $ref: '#/components/schemas/v1BillingPeriod'
        cost:
          $ref: '#/components/schemas/v1Cost'
        currency:
          $ref: '#/components/schemas/v1Currency'
        currencyCode:
          description: The 3-letter currency code defined in ISO 4217.
          type: string
        currentRevenue:
          $ref: '#/components/schemas/v1Revenue'
        customPrices:
          items:
            $ref: '#/components/schemas/v1CustomPriceMapping'
          title: The custom price mapping for variable priced products in a package in the order
          type: array
        initialRevenue:
          $ref: '#/components/schemas/v1Revenue'
        isTrial:
          title: Only used when AppKey is the identifier
          type: boolean
        nonBillable:
          title: 'Indicates whether this line item should be billable or not

            If true, the item will not be billed'
          type: boolean
        packageId:
          type: string
        quantity:
          format: int64
          type: string
        retailSubscriptionGroupId:
          title: The retail subscription group id that this line item belongs to (if any)
          type: string
        taxRateIds:
          items:
            type: string
          title: The tax rate ids that apply to this line item
          type: array
      type: object
    v1ListSalesOrderRequest:
      properties:
        cursor:
          title: current cursor position
          type: string
        filters:
          $ref: '#/components/schemas/v1ListSalesOrderRequestFilters'
        pageSize:
          format: int64
          title: 'size of the page to list

            0 assumes the default page size'
          type: string
        partnerId:
          title: partner id for partner making request
          type: string
        sortOption:
          $ref: '#/components/schemas/v1ListSalesOrderRequestSortOption'
      title: Request to get a list of orders for a partner
      type: object
    v1ListSalesOrderRequestDateRangeFilter:
      properties:
        beginRange:
          format: date-time
          type: string
        endRange:
          format: date-time
          type: string
      title: Begin and end of date range
      type: object
    v1Attachment:
      description: A file attachment associated with an order.
      properties:
        name:
          description: Required. The name of the attachment.
          type: string
        url:
          description: Required. The URL to the attachment.
          type: string
      required:
      - name
      - url
      title: Attachment
      type: object
    v1Cost:
      properties:
        customPrice:
          format: int64
          title: The custom price of the order item. Can only be changed if the application supports custom pricing
          type: string
      title: Cost represents the wholesale cost of an order
      type: object
    v1UserRole:
      default: USER_ROLE_UNSPECIFIED
      enum:
      - USER_ROLE_UNSPECIFIED
      - USER_ROLE_ADMIN
      - USER_ROLE_SALESPERSON
      - USER_ROLE_CLIENT
      type: string
    v1ListSalesOrderResponse:
      properties:
        hasMore:
          title: Whether or not more results exist
          type: boolean
        nextCursor:
          title: A cursor that can be provided to retrieve the next page of results
          type: string
        orders:
          items:
            $ref: '#/components/schemas/v1Order'
          title: list of the requested sales order data
          type: array
        totalResults:
          format: int64
          title: The number of total results there are
          type: string
      title: Response to get a list of orders for a partner
      type: object
    v1CustomPriceMapping:
      properties:
        customPrice:
          format: int64
          title: The custom price value of the product
          type: string
        productId:
          title: The ID of the product
          type: string
      title: Representing custom prices for variable priced products in a package
      type: object
    v1FieldType:
      default: NOT_SPECIFIED
      enum:
      - NOT_SPECIFIED
      - TEXT
      - TEXTAREA
      - DROPDOWN
      - CHECKBOX
      - FILE
      - VBCUSER
      title: Available types that a field can be
      type: string
    v1Currency:
      default: USD
      description: '- ZAR: Do not add to this list. If more currencies are required currency_code should be used instead'
      enum:
      - USD
      - CAD
      - EUR
      - AUD
      - GBP
      - NZD
      - ZAR
      type: string
    v1StatusHi

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