Whiplash Consumer Returns API

Goods returning from end consumers — list, create (single/bulk), count, retrieve, update, destroy, and meta fields

OpenAPI Specification

whiplash-consumer-returns-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Whiplash (Rydership) Bundle Items Consumer Returns API
  description: The Whiplash REST API (now RyderShip API under Ryder System) enables developers to manage orders, items, inventory, shipments, consumer returns, customers, notification subscriptions, and documents programmatically. The API uses OAuth 2.0 Bearer token authentication and supports both authorization code and client credentials flows. The V2 API is open by invite only.
  version: '2.0'
  contact:
    name: Rydership Development Team
    email: tech@whiplash.com
    url: https://www.getwhiplash.com
  x-logo:
    url: https://wl-s3-assets.s3.amazonaws.com/rydership/RyderShip-horizontal-safe-padding.svg
servers:
- url: https://api.getwhiplash.com
  description: Whiplash Production API
security:
- bearerAuth: []
tags:
- name: Consumer Returns
  description: Goods returning from end consumers — list, create (single/bulk), count, retrieve, update, destroy, and meta fields
paths:
  /v2/consumer_returns:
    get:
      operationId: listConsumerReturns
      summary: List consumer returns
      description: Returns a paginated list of consumer returns.
      tags:
      - Consumer Returns
      parameters:
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/LimitParam'
      responses:
        '200':
          description: Successful response
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createConsumerReturn
      summary: Create a consumer return
      tags:
      - Consumer Returns
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsumerReturnInput'
      responses:
        '201':
          description: Consumer return created
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /v2/consumer_returns/bulk:
    post:
      operationId: bulkCreateConsumerReturns
      summary: Bulk create consumer returns
      tags:
      - Consumer Returns
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ConsumerReturnInput'
      responses:
        '201':
          description: Consumer returns created
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/consumer_returns/count:
    get:
      operationId: countConsumerReturns
      summary: Count consumer returns
      tags:
      - Consumer Returns
      responses:
        '200':
          description: Count response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/consumer_returns/{id}:
    get:
      operationId: getConsumerReturn
      summary: Retrieve a consumer return
      tags:
      - Consumer Returns
      parameters:
      - $ref: '#/components/parameters/IdParam'
      responses:
        '200':
          description: Consumer return details
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateConsumerReturn
      summary: Update a consumer return
      tags:
      - Consumer Returns
      parameters:
      - $ref: '#/components/parameters/IdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsumerReturnInput'
      responses:
        '200':
          description: Consumer return updated
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteConsumerReturn
      summary: Delete a consumer return
      tags:
      - Consumer Returns
      parameters:
      - $ref: '#/components/parameters/IdParam'
      responses:
        '204':
          description: Consumer return deleted
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/consumer_returns/{id}/meta_fields:
    get:
      operationId: listConsumerReturnMetaFields
      summary: List meta fields for a consumer return
      tags:
      - Consumer Returns
      parameters:
      - $ref: '#/components/parameters/IdParam'
      responses:
        '200':
          description: Meta fields
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    IdParam:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: Unique identifier of the resource
    LimitParam:
      name: limit
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 500
      description: Number of results per page
    PageParam:
      name: page
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        default: 1
      description: Page number for pagination
  schemas:
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: string
    ConsumerReturnInput:
      type: object
      properties:
        externalId:
          type: string
        orderId:
          type: string
          description: ID of the originating order
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomField'
        tags:
          type: array
          items:
            type: string
    CustomField:
      type: object
      required:
      - name
      - value
      properties:
        name:
          type: string
        value:
          type: string
    CountResponse:
      type: object
      properties:
        count:
          type: integer
          description: Total number of matching resources
  responses:
    NotFound:
      description: Resource not found
    UnprocessableEntity:
      description: Validation error — the request body contains invalid data
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized — invalid or missing Bearer token
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: OAuth2
      description: OAuth 2.0 Bearer token. Obtain via authorization code or client credentials flow. See https://help.whiplash.com/hc/en-us/articles/360050870691-Authentication-for-the-V2-API
externalDocs:
  description: Whiplash API Developer Documentation
  url: https://help.whiplash.com/hc/en-us/categories/13378954544411-Whiplash-Application-Developers