Shell Orders API

Manage lubricants orders

OpenAPI Specification

shell-orders-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Shell B2B Mobility Accounts Orders API
  description: The Shell B2B Mobility API enables fleet operators and business customers to manage fuel cards, retrieve transaction data, manage invoices, query fuel station sites, and control card limits and restrictions. Supports B2B fleet management workflows across the Shell global network.
  version: 2.1.0
  contact:
    name: Shell Developer Portal
    url: https://developer.shell.com/
    email: api-maintainers@shell.com
  license:
    name: Shell API Terms
    url: https://www.shell.com/terms-and-conditions
  x-date: '2026-05-02'
servers:
- url: https://api.shell.com/mobility/v2
  description: Shell B2B Mobility API
security:
- OAuth2: []
tags:
- name: Orders
  description: Manage lubricants orders
paths:
  /orders:
    get:
      operationId: listOrders
      summary: List Orders
      description: Returns a list of lubricants orders for the account.
      tags:
      - Orders
      parameters:
      - name: accountNumber
        in: query
        required: true
        schema:
          type: string
      - name: status
        in: query
        description: Filter by order status
        schema:
          type: string
          enum:
          - Pending
          - Confirmed
          - Processing
          - Shipped
          - Delivered
          - Cancelled
      - name: fromDate
        in: query
        schema:
          type: string
          format: date
      - name: toDate
        in: query
        schema:
          type: string
          format: date
      - name: page
        in: query
        schema:
          type: integer
      - name: pageSize
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: A list of orders
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderListResponse'
    post:
      operationId: placeOrder
      summary: Place Order
      description: Places a new lubricants order.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCreateRequest'
      responses:
        '201':
          description: Order placed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
  /orders/{orderId}:
    get:
      operationId: getOrder
      summary: Get Order
      description: Returns details for a specific lubricants order.
      tags:
      - Orders
      parameters:
      - name: orderId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
components:
  schemas:
    OrderItem:
      type: object
      properties:
        productId:
          type: string
        productName:
          type: string
        quantity:
          type: number
          format: float
        unit:
          type: string
          enum:
          - litre
          - kg
          - drum
          - pail
          - can
        unitPrice:
          type: number
          format: float
        totalPrice:
          type: number
          format: float
    OrderListResponse:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/Order'
        totalCount:
          type: integer
        currentPage:
          type: integer
        pageCount:
          type: integer
    OrderCreateRequest:
      type: object
      required:
      - accountNumber
      - deliveryAddress
      - items
      properties:
        accountNumber:
          type: string
        poNumber:
          type: string
          description: Customer purchase order number
        requestedDeliveryDate:
          type: string
          format: date
        deliveryAddress:
          type: object
        items:
          type: array
          items:
            type: object
            properties:
              productId:
                type: string
              quantity:
                type: number
              unit:
                type: string
        notes:
          type: string
    Order:
      type: object
      properties:
        orderId:
          type: string
        accountNumber:
          type: string
        status:
          type: string
          enum:
          - Pending
          - Confirmed
          - Processing
          - Shipped
          - Delivered
          - Cancelled
        orderDate:
          type: string
          format: date-time
        expectedDeliveryDate:
          type: string
          format: date
        deliveryAddress:
          type: object
          properties:
            name:
              type: string
            street:
              type: string
            city:
              type: string
            postalCode:
              type: string
            country:
              type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem'
        totalAmount:
          type: number
          format: float
        currency:
          type: string
        tracking:
          type: object
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.shell.com/oauth/token
          scopes:
            mobility.cards: Manage fuel cards
            mobility.transactions: Access transaction data
            mobility.invoices: Access invoice data
            mobility.sites: Query site data