Recurrency Orders API

Create, list and retrieve sales orders and quotes.

OpenAPI Specification

recurrency-orders-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Recurrency E-Procurement Orders API
  version: '1.0'
  x-apievangelist-generated: '2026-07-21'
  x-apievangelist-method: generated
  x-apievangelist-source: https://recurrency.gitbook.io/recurrency/
  description: The Recurrency API lets wholesale distributors and B2B suppliers authenticate with Recurrency services, retrieve and filter a supplier's product catalog (items, availability, pricing, locations and groups), upload supplier product catalog data, and create and manage sales orders and quotes. This specification was generated by API Evangelist from Recurrency's published GitBook developer documentation; it is a faithful model of the documented endpoints, not a provider-published OpenAPI.
  contact:
    name: Recurrency Support
    url: https://recurrency.gitbook.io/recurrency/support/need-help
  termsOfService: https://www.recurrency.com/
servers:
- url: https://api.recurrency.com
  description: Production
- url: https://api-staging.recurrency.com
  description: Staging (recommended for initial setup)
security:
- oauth2: []
tags:
- name: Orders
  description: Create, list and retrieve sales orders and quotes.
paths:
  /orders:
    get:
      operationId: listOrders
      summary: List orders and quotes
      description: Retrieve the list of orders/quotes, optionally filtered by customer.
      tags:
      - Orders
      parameters:
      - name: customerId
        in: query
        schema:
          type: string
        description: Filter orders by customer identifier.
      responses:
        '200':
          description: A list of orders.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createOrder
      summary: Create an order or quote
      description: Create a new sales order or quote with order details and line items.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCreateRequest'
      responses:
        '201':
          description: Order created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderCreateResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /order-details/{salesOrderId}:
    get:
      operationId: getOrderDetails
      summary: Retrieve order details
      description: Retrieve comprehensive details for a single sales order, including line items, addresses and financials.
      tags:
      - Orders
      parameters:
      - name: salesOrderId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Order details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDetails'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    OrderCreateRequest:
      type: object
      properties:
        customerId:
          type: string
        companyId:
          type: string
        locationId:
          type: string
        poNo:
          type: string
        contactId:
          type: string
        taker:
          type: string
        jobName:
          type: string
        jobNo:
          type: string
        shipToId:
          type: string
        shipToName:
          type: string
        carrierId:
          type: string
        carrierName:
          type: string
        requestedDate:
          type: string
          format: date
        freightCd:
          type: string
        pickTicketType:
          type: string
        lines:
          type: array
          items:
            $ref: '#/components/schemas/OrderLineInput'
      required:
      - customerId
      - lines
    OrderList:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/OrderSummary'
        totalCount:
          type: number
    OrderLineInput:
      type: object
      properties:
        itemId:
          type: string
        qtyOrdered:
          type: string
        unitOfMeasure:
          type: string
        unitPrice:
          type: string
        description:
          type: string
        jobNo:
          type: string
    OrderDetails:
      type: object
      description: Comprehensive order record with metadata, addresses, shipping, financials and line items.
      properties:
        salesOrderId:
          type: string
        orderDate:
          type: string
          format: date-time
        dueDate:
          type: string
          format: date-time
        status:
          type: string
        approved:
          type: boolean
        customerId:
          type: string
        customerName:
          type: string
        totalPrice:
          type: number
        totalGrossMargin:
          type: number
        totalGrossMarginPercent:
          type: number
        lines:
          type: array
          items:
            type: object
            additionalProperties: true
    Error:
      type: object
      description: Standard Recurrency error envelope.
      properties:
        message:
          type: string
          description: Human-readable error message.
        details:
          type: object
          additionalProperties: true
          description: Field-level error details keyed by field path.
      required:
      - message
    OrderCreateResult:
      type: object
      properties:
        orderId:
          type: string
        status:
          type: string
        details:
          type: object
          additionalProperties: true
    OrderSummary:
      type: object
      properties:
        salesOrderId:
          type: string
        orderDate:
          type: string
          format: date-time
        dueDate:
          type: string
          format: date-time
        approved:
          type: boolean
        status:
          type: string
        customerPORef:
          type: string
        customerId:
          type: string
        customerName:
          type: string
  responses:
    BadRequest:
      description: Validation error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Invalid request
            details:
              product_name: product_name is required
    Unauthorized:
      description: Missing or invalid access token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Unauthorized
            details: {}
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Not found
            details: {}
  securitySchemes:
    oauth2:
      type: oauth2
      description: 'OAuth 2.0 client-credentials. POST to the token endpoint with grant_type=client_credentials plus client_id/client_secret to receive a Bearer access token (scope recurrency:api:tenant), valid for 7 days (604800 seconds). Send it as `authorization: Bearer {token}`.'
      flows:
        clientCredentials:
          tokenUrl: https://api.recurrency.com/oauth/token
          scopes:
            recurrency:api:tenant: Tenant-scoped access to the Recurrency e-procurement API.