Wingspan Invoice Management API
Covers endpoints related to invoice creation, retrieval, and management. This includes both member and client invoices, along with specific actions like sending invoices by email and managing invoice templates.
Covers endpoints related to invoice creation, retrieval, and management. This includes both member and client invoices, along with specific actions like sending invoices by email and managing invoice templates.
openapi: 3.1.0
info:
title: Wingspan Payments 1099 Operations Invoice Management API
description: Payments
termsOfService: https://www.wingspan.app
contact:
name: Wingspan API Support
url: https://www.wingspan.app
email: support@wingspan.app
license:
name: UNLICENSED
url: https://UNLICENSED
version: 1.0.0-oas3.1
servers:
- url: https://api.wingspan.app
description: Wingspan's Payments API in Production
x-speakeasy-server-id: prod
- url: https://stagingapi.wingspan.app
description: Wingspan's Payments API in Staging
x-speakeasy-server-id: staging
security:
- BearerAuth: []
tags:
- name: Invoice Management
description: Covers endpoints related to invoice creation, retrieval, and management. This includes both member and client invoices, along with specific actions like sending invoices by email and managing invoice templates.
paths:
/payments/invoice:
get:
summary: Retrieve All Member Invoices
operationId: getMemberInvoices
x-speakeasy-name-override: get_member
tags:
- Invoice Management
description: Fetch a complete list of invoices associated with members, providing a comprehensive overview of all member-related billing details.
responses:
'200':
description: A list of invoices
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Invoice'
post:
summary: Initiate New Invoice for a Member
operationId: createInvoice
x-speakeasy-name-override: create
tags:
- Invoice Management
description: Facilitates the creation of a new invoice for a member using the provided invoice details. Useful for adding new billing records.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceCreateRequest'
responses:
'200':
description: An invoice
content:
application/json:
schema:
$ref: '#/components/schemas/Invoice'
/payments/invoice/{id}:
get:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Fetch Invoice by ID
operationId: getInvoice
x-speakeasy-name-override: get
tags:
- Invoice Management
description: Retrieve the specifics of an individual invoice associated with a member using its unique ID. Ideal for diving into invoice details.
responses:
'200':
description: An invoice
content:
application/json:
schema:
$ref: '#/components/schemas/Invoice'
patch:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Modify Existing Invoice Details
operationId: updateInvoice
x-speakeasy-name-override: update
tags:
- Invoice Management
description: Allows updates to the details of an existing member invoice using its unique ID. Useful for making corrections or updates to billing records.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceUpdateRequest'
responses:
'200':
description: An invoice
content:
application/json:
schema:
$ref: '#/components/schemas/Invoice'
delete:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Remove Invoice Record by ID
operationId: deleteInvoice
x-speakeasy-name-override: delete
tags:
- Invoice Management
description: Enables the deletion of a specific member's invoice using its unique ID, helping in maintaining accurate billing records.
responses:
'200':
description: An invoice
content:
application/json:
schema:
$ref: '#/components/schemas/Invoice'
/payments/client/invoice:
get:
summary: Retrieve All Invoices Generated by a Client
operationId: listGeneratedInvoices
x-speakeasy-name-override: list
tags:
- Invoice Management
description: Fetch a comprehensive list of invoices that have been generated by a client, offering an overview of all client-related billing records.
responses:
'200':
description: A list of Client Created Invoices
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ClientInvoice'
post:
summary: Generate a New Invoice on Behalf of the Client
operationId: createGeneratedInvoice
x-speakeasy-name-override: create_generated
tags:
- Invoice Management
description: Enables the creation of a new invoice on behalf of a client using the provided details, facilitating new billing records.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoiceCreateRequest'
responses:
'200':
description: A client created invoice
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoice'
/payments/client/invoice/{id}:
get:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Fetch Specific Client-Generated Invoice by ID
operationId: getGeneratedInvoice
x-speakeasy-name-override: get_generated
tags:
- Invoice Management
description: Retrieve detailed information of an individual invoice created by a client using its unique ID for in-depth billing analysis.
responses:
'200':
description: A client created invoice
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoice'
patch:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Modify an Existing Client-Generated Invoice
operationId: updateGeneratedInvoice
x-speakeasy-name-override: update_generated
tags:
- Invoice Management
description: Allows for modifications to a client-generated invoice using its unique ID, ensuring billing details remain current and accurate.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoiceUpdateRequest'
responses:
'200':
description: A client created invoice
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoice'
/payments/client/invoice/{invoice_id}/pay:
post:
parameters:
- in: path
required: true
name: invoice_id
description: Unique identifier of an invoice
schema:
type: string
summary: Execute Payment for a Client-Generated Invoice
operationId: executeClientInvoicePayment
x-speakeasy-name-override: execute
tags:
- Invoice Management
description: Process a payment for a specific client-generated invoice using the provided details, ensuring the invoice is marked as settled.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PayRequest'
responses:
'200':
description: A client created invoice
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoice'
/payments/invoice-template:
get:
summary: Retrieve all available invoice templates
operationId: listInvoiceTemplates
x-speakeasy-name-override: list_templates
tags:
- Invoice Management
description: Fetches a comprehensive list of all invoice templates in the system.
responses:
'200':
description: At list of invoice templates
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/InvoiceTemplate'
post:
summary: Create a new invoice template
operationId: createInvoiceTemplate
x-speakeasy-name-override: create_template
tags:
- Invoice Management
description: Creates a new invoice template based on the provided details.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceTemplateCreateRequest'
responses:
'200':
description: A recurring invoice
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceTemplate'
/payments/invoice-template/{id}:
get:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Retrieve a specific invoice template by ID
operationId: getInvoiceTemplate
x-speakeasy-name-override: get_template
tags:
- Invoice Management
description: Fetches details of the invoice template corresponding to the provided unique identifier.
responses:
'200':
description: A recurring invoice
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceTemplate'
patch:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Modify details of an existing invoice template
operationId: updateInvoiceTemplate
x-speakeasy-name-override: update_template
tags:
- Invoice Management
description: Updates details of the specified invoice template based on the provided information.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceTemplateUpdateRequest'
responses:
'200':
description: A recurring invoice
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceTemplate'
delete:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Remove a specific invoice template
operationId: deleteInvoiceTemplate
x-speakeasy-name-override: delete_template
tags:
- Invoice Management
description: Deletes the invoice template associated with the provided unique identifier.
responses:
'200':
description: A recurring invoice
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceTemplate'
/payments/client/invoice-template:
get:
summary: Retrieve all client-generated invoice templates
operationId: listClientInvoiceTemplates
x-speakeasy-name-override: list_client
tags:
- Invoice Management
description: Fetches a comprehensive list of all invoice templates created by clients in the system.
responses:
'200':
description: A list of Client Created Invoice Template
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ClientInvoiceTemplate'
post:
summary: Create a new client-generated invoice template
operationId: createClientInvoiceTemplate
x-speakeasy-name-override: create_client
tags:
- Invoice Management
description: Allows clients to create a new invoice template based on the provided details.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoiceTemplateCreateRequest'
responses:
'200':
description: A client created invoiceTemplate (recurring Invoice)
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoiceTemplate'
/payments/client/invoice-template/{id}:
get:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Fetch a specific client-generated invoice template by ID
operationId: getClientInvoiceTemplate
x-speakeasy-name-override: get_client
tags:
- Invoice Management
description: Provides details of the client-generated invoice template associated with the provided unique identifier.
responses:
'200':
description: A client created invoiceTemplate (recurring Invoice)
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoiceTemplate'
patch:
parameters:
- in: path
required: true
name: id
description: Unique identifier
schema:
type: string
summary: Modify a client-generated invoice template
operationId: updateClientInvoiceTemplate
x-speakeasy-name-override: update_client
tags:
- Invoice Management
description: Updates the specified client-generated invoice template with the provided modifications.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoiceTemplateUpdateRequest'
responses:
'200':
description: A client created invoiceTemplate (recurring Invoice)
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoiceTemplate'
/payments/invoice/{invoice_id}/generate:
post:
parameters:
- in: path
required: true
name: invoice_id
description: Unique identifier of an invoice
schema:
type: string
summary: Generate a PDF for a specific invoice
operationId: generateSpecificInvoice
x-speakeasy-name-override: generate
tags:
- Invoice Management
description: This endpoint allows for the dynamic generation of a PDF document for a given invoice, identified by its unique ID.
responses:
'200':
description: Response from generation of invoice pdf
content:
application/json:
schema:
$ref: '#/components/schemas/InvoicePdfGenerationResponse'
/payments/invoice/{invoice_id}/send:
post:
parameters:
- in: path
required: true
name: invoice_id
description: Unique identifier of an invoice
schema:
type: string
summary: Send an invoice by email
operationId: sendInvoiceEmail
x-speakeasy-name-override: send
tags:
- Invoice Management
description: Use this endpoint to send an invoice by email using its unique ID for identification.
responses:
'200':
description: An invoice
content:
application/json:
schema:
$ref: '#/components/schemas/Invoice'
/payments/invoice/{invoice_id}/refund:
post:
parameters:
- in: path
required: true
name: invoice_id
description: Unique identifier of an invoice
schema:
type: string
summary: Refund a deposited invoice
operationId: refundDepositedInvoice
x-speakeasy-name-override: refund
tags:
- Invoice Management
description: Use this endpoint to refund a specific amount of a deposited invoice.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceRefundRequest'
responses:
'200':
description: An invoice
content:
application/json:
schema:
$ref: '#/components/schemas/Invoice'
/payments/client/invoice/{invoice_id}/fees:
get:
parameters:
- in: path
required: true
name: invoice_id
description: Unique identifier of an invoice
schema:
type: string
summary: Retrieve Fees Associated with a Client's Invoice
operationId: getInvoiceFees
x-speakeasy-name-override: get_fees
tags:
- Invoice Management
description: Obtain a detailed breakdown of all the fees associated with a specific client's invoice, identified by its unique ID.
responses:
'200':
description: Fees on Invoice
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceFeeCalculation'
/payments/invoice/test/create:
post:
summary: Generate Test Invoice for a Client
operationId: generateTestInvoice
x-speakeasy-name-override: generate_test
tags:
- Invoice Management
description: Use this endpoint to create a test invoice for testing and validation purposes. This invoice will mimic a client's real invoice.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TestInvoiceCreate'
responses:
'200':
description: A client created invoice
content:
application/json:
schema:
$ref: '#/components/schemas/ClientInvoice'
components:
schemas:
InvoiceTemplateCreateRequest:
type: object
properties:
invoiceData:
$ref: '#/components/schemas/InvoiceDataCreateRequest'
status:
type: string
enum:
- Active
- Draft
- Expired
- Cancelled
dueInDays:
type:
- number
- 'null'
frequency:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/Frequency'
isSchedulingOnly:
type:
- boolean
- 'null'
labels:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/LabelsDictionary'
scheduleDates:
type:
- array
- 'null'
items:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/ScheduleDate'
sendEmails:
type:
- boolean
- 'null'
required:
- invoiceData
- status
InvoicePayoutDestination:
type: object
properties:
amount:
type: number
description:
type: string
destinationType:
type: string
enum:
- Account
- Card
- InternalAccount
- PaperCheck
- WeGift
payoutMethod:
type: string
enum:
- Standard
- Instant
- Expedited
- Check
- ECheck
percentage:
type: number
transferId:
type: string
brand:
type:
- string
- 'null'
destinationId:
type:
- string
- 'null'
last4:
type:
- string
- 'null'
required:
- amount
- description
- destinationType
- payoutMethod
- percentage
- transferId
InvoiceRefundDestination:
type: object
properties:
amount:
type: number
createdAt:
type: string
destinationType:
type: string
enum:
- Account
- Card
- InternalAccount
- PaperCheck
- WeGift
events:
$ref: '#/components/schemas/InvoiceRefundEvents'
labels:
$ref: '#/components/schemas/LabelsDictionary'
refundType:
type: string
enum:
- Account
- TaxWithholding
- Wallet
- Card
updatedAt:
type: string
destinationId:
type:
- string
- 'null'
stripeTransferId:
type:
- string
- 'null'
transactionId:
type:
- string
- 'null'
transferId:
type:
- string
- 'null'
required:
- amount
- createdAt
- destinationType
- events
- labels
- refundType
- updatedAt
MemberClientForm1099Balances:
type: object
properties:
adjustments:
type: number
deliveryMethod:
type: string
enum:
- Electronic
- Mail
exclusionReason:
type: string
enum:
- BelowThreshold
- CompanyStructure
- NonUsEntity
form1099Generated:
type: boolean
paymentProcessingFees:
type: number
platformIncome:
type: number
status:
type: string
enum:
- Ready
- NeedsActionInfo
- NeedsActionDispute
- Submitted
- Rejected
- Accepted
- Excluded
type:
type: string
enum:
- NEC
correction:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/Form1099Correction'
dispute:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/8a9c6cb49482a98cdd603ff09858cdc3e5ef6ad9807c876c4161d925a96694a5'
events:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/Form1099Events'
taxForm:
oneOf:
- type: 'null'
- type: object
taxFormId:
type:
- string
- 'null'
required:
- adjustments
- deliveryMethod
- exclusionReason
- form1099Generated
- paymentProcessingFees
- platformIncome
- status
- type
Frequency:
type: object
properties:
startDate:
type: string
daily:
type:
- boolean
- 'null'
dayInInterval:
type:
- number
- 'null'
endDate:
type:
- string
- 'null'
every:
type:
- number
- 'null'
interval:
type:
- string
- 'null'
enum:
- Week
- Month
- null
twicePerMonth:
type:
- boolean
- 'null'
required:
- startDate
InvoiceAppliedDeductions:
type: object
properties:
amount:
type: number
deductionId:
type: string
name:
type: string
transferId:
type:
- string
- 'null'
required:
- amount
- deductionId
- name
InvoiceCollaborator:
type: object
properties:
amount:
type: number
currency:
type: string
enum:
- USD
- CAD
description:
type: string
memberClientId:
type: string
invoiceId:
type:
- string
- 'null'
required:
- amount
- currency
- description
- memberClientId
InvoiceTemplateUpdateRequest:
type: object
properties:
accountId:
type:
- string
- 'null'
autoPaymentRequired:
type:
- boolean
- 'null'
dueInDays:
type:
- number
- 'null'
frequency:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/FrequencyUpdate'
invoiceData:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/InvoiceUpdateRequest'
isSchedulingOnly:
type:
- boolean
- 'null'
labels:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/LabelsDictionary'
paymentMethodId:
type:
- string
- 'null'
scheduleDates:
type:
- array
- 'null'
items:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/ScheduleDateUpdate'
sendEmails:
type:
- boolean
- 'null'
status:
type:
- string
- 'null'
enum:
- Active
- Draft
- Expired
- Cancelled
- null
Fees:
type: object
properties:
lateFee:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/Fee'
processingFee:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/Fee'
Form1099Events:
type: object
properties:
acceptedByCollaboratorAt:
type:
- string
- 'null'
createdAt:
type:
- string
- 'null'
postFilingSuggestionMadeAt:
type:
- string
- 'null'
postFilingSuggestionResolvedAt:
type:
- string
- 'null'
submittedForCollaboratorReviewAt:
type:
- string
- 'null'
suggestionMadeAt:
type:
- string
- 'null'
suggestionResolvedAt:
type:
- string
- 'null'
updatedAt:
type:
- string
- 'null'
InvoiceEvents:
type: object
properties:
approvedAt:
type:
- string
- 'null'
cancelledAt:
type:
- string
- 'null'
clientDeclinedAt:
type:
- string
- 'null'
clientResolvedDisputeAt:
type:
- string
- 'null'
depositedAt:
type:
- string
- 'null'
depositedToPayoutPlatformAt:
type:
- string
- 'null'
disputedAt:
type:
- string
- 'null'
emailMarkedAsSpamAt:
type:
- string
- 'null'
emailReceivedAt:
type:
- array
- 'null'
items:
type:
- string
- 'null'
emailUndeliverableAt:
type:
- string
- 'null'
emailViewedAt:
type:
- array
- 'null'
items:
type:
- string
- 'null'
estimatedDepositAt:
type:
- string
- 'null'
instantPayoutAt:
type:
- string
- 'null'
instantPayoutEligibleAt:
type:
- string
- 'null'
instantPayoutFailedAt:
type:
- string
- 'null'
markedPaidAt:
type:
- string
- 'null'
memberAcceptedAt:
type:
- string
- 'null'
memberDisputedAt:
type:
- string
- 'null'
memberResubmittedAt:
type:
- string
- 'null'
openedAt:
type:
- string
- 'null'
paidAt:
type:
- string
- 'null'
payAfterAccountVerified:
type:
- string
- 'null'
paymentFailedAt:
type:
- array
- 'null'
items:
type:
- string
- 'null'
paymentInTransitAt:
type:
- string
- 'null'
paymentRetriedAt:
type:
- array
- 'null'
items:
type:
- string
- 'null'
payoutFailedAt:
type:
- string
- 'null'
preApprovedAt:
type:
- string
- 'null'
refundedAt:
type:
- string
- 'null'
sentAt:
type:
- string
- 'null'
sentDue3DaysAgoAt:
type:
- string
- 'null'
sentDue7DaysAgoAt:
type:
- string
- 'null'
sentDueIn3DaysAt:
type:
- string
- 'null'
sentDueTodayAt:
type:
- string
- 'null'
sentInstantPayoutFailedToMember:
type:
- string
- 'null'
sentManuallyAt:
type:
- array
- 'null'
items:
type:
- string
- 'null'
sentPaymentConfirmationToClient:
type:
- string
- 'null'
sentPaymentConfirmationToMember:
type:
- string
- 'null'
sentPaymentInTransitReminderAt:
type:
- string
- 'null'
sentPayoutMightBeDelayedToClient:
type:
- string
- 'null'
sentRecurringPaymentFailedAt:
type:
- string
- 'null'
DocumentFiles:
type: object
properties:
client:
type:
- string
- 'null'
member:
type:
- string
- 'null'
InvoiceLineItemsCreateRequest:
type: object
properties:
costPerUnit:
type:
- number
- 'null'
description:
type:
- string
- 'null'
detail:
type:
- string
- 'null'
discount:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/facb8048736dba546c4c76242d9f8c7111011a7a7483528f37d80226698a1f2b'
integration:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/3190685832a4970525ea5b0803efff0b36a0202062e1fd8a0bc187acbe156461'
labels:
oneOf:
- type: 'null'
- $ref: '#/components/schemas/LabelsDictionary'
quantity:
type:
- number
- 'null'
reimbursableExpense:
type:
- boolean
- 'null'
totalCost:
type:
- number
- 'null'
unit:
type:
- string
- 'null'
ClientOptions:
type: object
properties:
comment:
type:
- string
- 'null'
payDate:
type:
- string
- 'null'
workflowStatus:
type:
- string
- 'null'
enum:
- Pending
- PreApproved
- Approved
- PaymentInitiated
- Funded
- Declined
- null
workflowSubStatus:
type:
- string
- 'null'
enum:
- Submitted
- null
ClientInvoiceTemplateCreateRequest:
type: object
properties:
clientEmail:
type: string
invoiceData:
$ref: '#/components/schemas/ClientInvoiceDataCreateRequest'
memberId:
type: string
status:
type: string
enum:
- Active
- Draft
- Expired
- Cancelled
accountId:
type:
- string
- 'null'
clientCompany:
type:
- string
- 'null'
clientEmailCC:
type:
- array
- 'null'
items:
type:
- string
- 'null'
clientFirstName:
type:
# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wingspan/refs/heads/main/openapi/wingspan-invoice-management-api-openapi.yml