Recurrency Orders API
Create, list and retrieve sales orders and quotes.
Create, list and retrieve sales orders and quotes.
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.