ScanSource Invoice API

The ScanSource Invoice API provides access to invoicing data including invoice summaries, detailed invoice lists, individual invoice details, and PDF exports. Supports filtering by date range, sales order number, invoice number, and purchase order number.

OpenAPI Specification

scansource-invoice-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ScanSource Invoice API
  description: The ScanSource Invoice API provides programmatic access to invoicing data for technology distribution partners. Includes invoice summaries, detailed invoice lists, individual invoice details, and PDF export capabilities with filtering by date range and order identifiers.
  version: 1.0.0
  contact:
    name: ScanSource Partner Support
    email: [email protected]
    url: https://partnerportal.scansource.com
servers:
- url: https://services.scansource.com/api
  description: ScanSource Production API
tags:
- name: Invoices
  description: Invoice retrieval and management operations
paths:
  /invoice/summary/{customerNumber}:
    get:
      operationId: getInvoiceSummary
      summary: Get Invoice Summary
      description: Retrieve a paginated summary view of invoices for a customer account, with filtering options by date range, order numbers, and invoice numbers.
      tags:
      - Invoices
      parameters:
      - name: customerNumber
        in: path
        required: true
        description: Customer account number
        schema:
          type: string
      - name: page
        in: query
        required: false
        description: Page number for pagination
        schema:
          type: integer
          default: 1
      - name: pageSize
        in: query
        required: false
        description: Number of results per page
        schema:
          type: integer
          default: 20
      - name: salesOrderNumber
        in: query
        required: false
        description: Filter by ScanSource sales order number
        schema:
          type: string
      - name: invoiceNumber
        in: query
        required: false
        description: Filter by specific invoice number
        schema:
          type: string
      - name: poNumber
        in: query
        required: false
        description: Filter by customer purchase order number
        schema:
          type: string
      - name: fromDate
        in: query
        required: false
        description: Start date filter (ISO 8601 date)
        schema:
          type: string
          format: date
      - name: toDate
        in: query
        required: false
        description: End date filter (ISO 8601 date)
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Invoice summary results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceSummaryResponse'
        '401':
          description: Unauthorized - invalid subscription key
        '403':
          description: Forbidden - invalid customer number
      security:
      - ApiKeyAuth: []
  /invoice/list/{customerNumber}:
    get:
      operationId: listInvoices
      summary: List Invoices
      description: Retrieve a detailed list of invoices for a customer with extended invoice information including line items and amounts.
      tags:
      - Invoices
      parameters:
      - name: customerNumber
        in: path
        required: true
        description: Customer account number
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
      - name: pageSize
        in: query
        required: false
        schema:
          type: integer
      - name: salesOrderNumber
        in: query
        required: false
        schema:
          type: string
      - name: invoiceNumber
        in: query
        required: false
        schema:
          type: string
      - name: poNumber
        in: query
        required: false
        schema:
          type: string
      - name: fromDate
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: toDate
        in: query
        required: false
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Detailed invoice list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceListResponse'
        '401':
          description: Unauthorized
      security:
      - ApiKeyAuth: []
  /invoice/detail/{customerNumber}/{invoiceNumber}:
    get:
      operationId: getInvoiceDetail
      summary: Get Invoice Detail
      description: Retrieve comprehensive details for a specific invoice including all line items, pricing, tax information, and shipping details.
      tags:
      - Invoices
      parameters:
      - name: customerNumber
        in: path
        required: true
        description: Customer account number
        schema:
          type: string
      - name: invoiceNumber
        in: path
        required: true
        description: Invoice number to retrieve
        schema:
          type: string
      - name: excludeSerialTracking
        in: query
        required: false
        description: Exclude serial number tracking data from response
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Detailed invoice information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceDetail'
        '401':
          description: Unauthorized
        '404':
          description: Invoice not found
      security:
      - ApiKeyAuth: []
  /invoice/pdf/{customerNumber}/{invoiceNumber}:
    get:
      operationId: getInvoicePdf
      summary: Get Invoice PDF
      description: Download a PDF copy of a specific invoice for record keeping or sharing with customers.
      tags:
      - Invoices
      parameters:
      - name: customerNumber
        in: path
        required: true
        description: Customer account number
        schema:
          type: string
      - name: invoiceNumber
        in: path
        required: true
        description: Invoice number
        schema:
          type: string
      responses:
        '200':
          description: Invoice PDF file
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '401':
          description: Unauthorized
        '404':
          description: Invoice not found
      security:
      - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Ocp-Apim-Subscription-Key
      description: Azure API Management subscription key from ScanSource partner portal
  schemas:
    InvoiceSummaryResponse:
      type: object
      properties:
        totalCount:
          type: integer
          description: Total number of matching invoices
        page:
          type: integer
        pageSize:
          type: integer
        invoices:
          type: array
          items:
            type: object
            properties:
              invoiceNumber:
                type: string
              salesOrderNumber:
                type: string
              poNumber:
                type: string
              invoiceDate:
                type: string
                format: date
              totalAmount:
                type: number
              currency:
                type: string
              status:
                type: string
    InvoiceListResponse:
      type: object
      properties:
        totalCount:
          type: integer
        invoices:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceDetail'
    InvoiceDetail:
      type: object
      properties:
        invoiceNumber:
          type: string
          description: Invoice number
        salesOrderNumber:
          type: string
          description: Associated ScanSource sales order number
        poNumber:
          type: string
          description: Customer purchase order number
        customerNumber:
          type: string
        invoiceDate:
          type: string
          format: date
        dueDate:
          type: string
          format: date
        billToAddress:
          type: object
          properties:
            name:
              type: string
            address1:
              type: string
            city:
              type: string
            state:
              type: string
            postalCode:
              type: string
            country:
              type: string
        shipToAddress:
          type: object
          properties:
            name:
              type: string
            address1:
              type: string
            city:
              type: string
            state:
              type: string
            postalCode:
              type: string
            country:
              type: string
        lineItems:
          type: array
          items:
            type: object
            properties:
              lineNumber:
                type: integer
              itemNumber:
                type: string
              manufacturerPartNumber:
                type: string
              description:
                type: string
              quantity:
                type: integer
              unitPrice:
                type: number
              extendedPrice:
                type: number
              serialNumbers:
                type: array
                items:
                  type: string
        subtotal:
          type: number
        tax:
          type: number
        shippingCost:
          type: number
        totalAmount:
          type: number
        currency:
          type: string
          default: USD