United Rentals Invoices API

Invoice and billing management

OpenAPI Specification

united-rentals-invoices-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: United Rentals Total Control Equipment Invoices API
  description: United Rentals provides a broad selection of APIs to simplify the procure-to-pay lifecycle for equipment rentals. The Total Control platform enables integration with customer procurement and ERP systems via EDI, cXML, JSON, and flat-file formats. Capabilities include punch-out catalog ordering, rental reservations, fleet management, invoice management, and automated PO/bill pay workflows. United Rentals is the world's largest equipment rental company.
  version: 1.0.0
  contact:
    name: United Rentals Integration Team
    url: https://www.unitedrentals.com/services/online-services/total-control/system-integration
  termsOfService: https://www.unitedrentals.com
servers:
- url: https://api.unitedrentals.com/v1
  description: United Rentals Production API
tags:
- name: Invoices
  description: Invoice and billing management
paths:
  /invoices:
    get:
      operationId: listInvoices
      summary: List Invoices
      description: Retrieve invoices for automated invoice transmission and payment processing.
      tags:
      - Invoices
      parameters:
      - name: status
        in: query
        schema:
          type: string
          enum:
          - pending
          - paid
          - overdue
          - disputed
        description: Filter by invoice status
      - name: startDate
        in: query
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        schema:
          type: string
          format: date
      - name: purchaseOrderNumber
        in: query
        schema:
          type: string
        description: Filter by customer purchase order number
      responses:
        '200':
          description: Invoices returned
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Invoice'
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - ApiKeyAuth: []
  /invoices/{invoiceId}:
    get:
      operationId: getInvoice
      summary: Get Invoice
      description: Retrieve details for a specific invoice.
      tags:
      - Invoices
      parameters:
      - name: invoiceId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Invoice details returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '404':
          $ref: '#/components/responses/NotFound'
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - ApiKeyAuth: []
  /invoices/{invoiceId}/pay:
    post:
      operationId: payInvoice
      summary: Pay Invoice
      description: Submit payment for an invoice to automate bill pay management.
      tags:
      - Invoices
      parameters:
      - name: invoiceId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequest'
      responses:
        '200':
          description: Payment submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - ApiKeyAuth: []
components:
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    PaymentRequest:
      type: object
      required:
      - amount
      - paymentMethod
      properties:
        amount:
          type: number
          format: double
        paymentMethod:
          type: string
          enum:
          - ach
          - credit-card
          - check
        reference:
          type: string
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    InvoiceLineItem:
      type: object
      properties:
        description:
          type: string
        quantity:
          type: number
        unitPrice:
          type: number
          format: double
        amount:
          type: number
          format: double
    PaymentResponse:
      type: object
      properties:
        paymentId:
          type: string
        status:
          type: string
          enum:
          - processed
          - pending
        amount:
          type: number
          format: double
        processedAt:
          type: string
          format: date-time
    Invoice:
      type: object
      properties:
        invoiceId:
          type: string
        invoiceNumber:
          type: string
        status:
          type: string
          enum:
          - pending
          - paid
          - overdue
          - disputed
        rentalId:
          type: string
        purchaseOrderNumber:
          type: string
        issueDate:
          type: string
          format: date
        dueDate:
          type: string
          format: date
        subtotal:
          type: number
          format: double
        tax:
          type: number
          format: double
        totalAmount:
          type: number
          format: double
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceLineItem'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: United Rentals API key from Total Control portal