ScanSource · Capability
ScanSource Invoice API — Invoices
ScanSource Invoice API — Invoices. 4 operations. Lead operation: Get Invoice Detail. Self-contained Naftiko capability covering one Scansource business surface.
What You Can Do
GET
Getinvoicedetail
— Get Invoice Detail
/v1/invoice/detail/{customernumber}/{invoicenumber}
GET
Listinvoices
— List Invoices
/v1/invoice/list/{customernumber}
GET
Getinvoicepdf
— Get Invoice PDF
/v1/invoice/pdf/{customernumber}/{invoicenumber}
GET
Getinvoicesummary
— Get Invoice Summary
/v1/invoice/summary/{customernumber}
MCP Tools
get-invoice-detail
Get Invoice Detail
read-only
idempotent
list-invoices
List Invoices
read-only
idempotent
get-invoice-pdf
Get Invoice PDF
read-only
idempotent
get-invoice-summary
Get Invoice Summary
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: ScanSource Invoice API — Invoices
description: 'ScanSource Invoice API — Invoices. 4 operations. Lead operation: Get Invoice Detail. Self-contained Naftiko
capability covering one Scansource business surface.'
tags:
- Scansource
- Invoices
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
SCANSOURCE_API_KEY: SCANSOURCE_API_KEY
capability:
consumes:
- type: http
namespace: invoice-invoices
baseUri: https://services.scansource.com/api
description: ScanSource Invoice API — Invoices business capability. Self-contained, no shared references.
resources:
- name: invoice-detail-customerNumber-invoiceNumber
path: /invoice/detail/{customerNumber}/{invoiceNumber}
operations:
- name: getinvoicedetail
method: GET
description: Get Invoice Detail
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: customerNumber
in: path
type: string
description: Customer account number
required: true
- name: invoiceNumber
in: path
type: string
description: Invoice number to retrieve
required: true
- name: excludeSerialTracking
in: query
type: boolean
description: Exclude serial number tracking data from response
- name: invoice-list-customerNumber
path: /invoice/list/{customerNumber}
operations:
- name: listinvoices
method: GET
description: List Invoices
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: customerNumber
in: path
type: string
description: Customer account number
required: true
- name: page
in: query
type: integer
- name: pageSize
in: query
type: integer
- name: salesOrderNumber
in: query
type: string
- name: invoiceNumber
in: query
type: string
- name: poNumber
in: query
type: string
- name: fromDate
in: query
type: string
- name: toDate
in: query
type: string
- name: invoice-pdf-customerNumber-invoiceNumber
path: /invoice/pdf/{customerNumber}/{invoiceNumber}
operations:
- name: getinvoicepdf
method: GET
description: Get Invoice PDF
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: customerNumber
in: path
type: string
description: Customer account number
required: true
- name: invoiceNumber
in: path
type: string
description: Invoice number
required: true
- name: invoice-summary-customerNumber
path: /invoice/summary/{customerNumber}
operations:
- name: getinvoicesummary
method: GET
description: Get Invoice Summary
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: customerNumber
in: path
type: string
description: Customer account number
required: true
- name: page
in: query
type: integer
description: Page number for pagination
- name: pageSize
in: query
type: integer
description: Number of results per page
- name: salesOrderNumber
in: query
type: string
description: Filter by ScanSource sales order number
- name: invoiceNumber
in: query
type: string
description: Filter by specific invoice number
- name: poNumber
in: query
type: string
description: Filter by customer purchase order number
- name: fromDate
in: query
type: string
description: Start date filter (ISO 8601 date)
- name: toDate
in: query
type: string
description: End date filter (ISO 8601 date)
authentication:
type: apikey
key: Ocp-Apim-Subscription-Key
value: '{{env.SCANSOURCE_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: invoice-invoices-rest
port: 8080
description: REST adapter for ScanSource Invoice API — Invoices. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/invoice/detail/{customernumber}/{invoicenumber}
name: invoice-detail-customernumber-invoicenumber
description: REST surface for invoice-detail-customerNumber-invoiceNumber.
operations:
- method: GET
name: getinvoicedetail
description: Get Invoice Detail
call: invoice-invoices.getinvoicedetail
with:
customerNumber: rest.customerNumber
invoiceNumber: rest.invoiceNumber
excludeSerialTracking: rest.excludeSerialTracking
outputParameters:
- type: object
mapping: $.
- path: /v1/invoice/list/{customernumber}
name: invoice-list-customernumber
description: REST surface for invoice-list-customerNumber.
operations:
- method: GET
name: listinvoices
description: List Invoices
call: invoice-invoices.listinvoices
with:
customerNumber: rest.customerNumber
page: rest.page
pageSize: rest.pageSize
salesOrderNumber: rest.salesOrderNumber
invoiceNumber: rest.invoiceNumber
poNumber: rest.poNumber
fromDate: rest.fromDate
toDate: rest.toDate
outputParameters:
- type: object
mapping: $.
- path: /v1/invoice/pdf/{customernumber}/{invoicenumber}
name: invoice-pdf-customernumber-invoicenumber
description: REST surface for invoice-pdf-customerNumber-invoiceNumber.
operations:
- method: GET
name: getinvoicepdf
description: Get Invoice PDF
call: invoice-invoices.getinvoicepdf
with:
customerNumber: rest.customerNumber
invoiceNumber: rest.invoiceNumber
outputParameters:
- type: object
mapping: $.
- path: /v1/invoice/summary/{customernumber}
name: invoice-summary-customernumber
description: REST surface for invoice-summary-customerNumber.
operations:
- method: GET
name: getinvoicesummary
description: Get Invoice Summary
call: invoice-invoices.getinvoicesummary
with:
customerNumber: rest.customerNumber
page: rest.page
pageSize: rest.pageSize
salesOrderNumber: rest.salesOrderNumber
invoiceNumber: rest.invoiceNumber
poNumber: rest.poNumber
fromDate: rest.fromDate
toDate: rest.toDate
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: invoice-invoices-mcp
port: 9090
transport: http
description: MCP adapter for ScanSource Invoice API — Invoices. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: get-invoice-detail
description: Get Invoice Detail
hints:
readOnly: true
destructive: false
idempotent: true
call: invoice-invoices.getinvoicedetail
with:
customerNumber: tools.customerNumber
invoiceNumber: tools.invoiceNumber
excludeSerialTracking: tools.excludeSerialTracking
outputParameters:
- type: object
mapping: $.
- name: list-invoices
description: List Invoices
hints:
readOnly: true
destructive: false
idempotent: true
call: invoice-invoices.listinvoices
with:
customerNumber: tools.customerNumber
page: tools.page
pageSize: tools.pageSize
salesOrderNumber: tools.salesOrderNumber
invoiceNumber: tools.invoiceNumber
poNumber: tools.poNumber
fromDate: tools.fromDate
toDate: tools.toDate
outputParameters:
- type: object
mapping: $.
- name: get-invoice-pdf
description: Get Invoice PDF
hints:
readOnly: true
destructive: false
idempotent: true
call: invoice-invoices.getinvoicepdf
with:
customerNumber: tools.customerNumber
invoiceNumber: tools.invoiceNumber
outputParameters:
- type: object
mapping: $.
- name: get-invoice-summary
description: Get Invoice Summary
hints:
readOnly: true
destructive: false
idempotent: true
call: invoice-invoices.getinvoicesummary
with:
customerNumber: tools.customerNumber
page: tools.page
pageSize: tools.pageSize
salesOrderNumber: tools.salesOrderNumber
invoiceNumber: tools.invoiceNumber
poNumber: tools.poNumber
fromDate: tools.fromDate
toDate: tools.toDate
outputParameters:
- type: object
mapping: $.