Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: stax-api Invoice API
version: '0.1'
servers:
- url: https://apiprod.fattlabs.com/
security:
- ApiKeyAuth: []
tags:
- name: Invoice
paths:
/invoice/schedule/:
post:
summary: Create a Scheduled Invoice
description: Creates a new scheduled invoice for automated recurring or one-time billing.
operationId: createScheduledInvoice
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- url
- total
properties:
url:
type: string
description: The URL for the hosted invoice page.
total:
type: number
description: The total amount for the invoice.
rule:
type: string
description: The iCalendar RRule recurrence rule string (e.g., DTSTART=20231101T120000Z;FREQ=MONTHLY;COUNT=12).
customer_id:
type: string
description: The ID of the customer to associate with the schedule.
payment_method_id:
type: string
description: The ID of the payment method for autopay. If omitted, the customer will pay manually.
email_notification:
type: boolean
description: Whether to send email notifications when invoices are generated. Defaults to true.
default: true
files:
type: array
description: Array of file IDs to attach to the schedule.
items:
type: string
meta:
type: object
description: Metadata for the invoice, including line items, tax, and other details.
properties:
subtotal:
type: number
description: The subtotal amount before tax and fees.
tax:
type: number
description: The tax amount applied to the invoice.
fee:
type: number
description: An optional fee amount in dollars (not cents).
minimum: 0
poNumber:
type: string
nullable: true
description: An optional purchase order number.
shippingAmount:
type: number
description: The shipping amount for the invoice.
minimum: 0
hideCustomerLineItems:
type: boolean
nullable: true
description: When set to true, line item details are hidden from customer-facing emails and receipts. Line items remain stored on the invoice and are passed to the payment gateway.
lineItems:
type: array
description: Array of line items for the invoice.
items:
type: object
properties:
item:
type: string
description: The name or description of the item.
quantity:
type: number
description: The quantity of the item.
price:
type: number
description: The price per unit of the item.
responses:
'201':
description: Schedule successfully created.
'400':
description: Bad Request - Invalid parameters or missing required fields.
'422':
description: Validation Error - DTSTART is in the past, recurrence rules are incorrectly formatted, or invalid field values.
'500':
description: Internal Server Error.
tags:
- Invoice
/invoice:
post:
summary: Create an Invoice
description: Creates an invoice
operationId: create-an-invoice
requestBody:
content:
application/json:
schema:
type: object
properties:
customer_id:
type: string
description: If provided, it auto-assigns the invoice to a specific customer. If not, the invoice requires manual assignment before payment.
url:
type: string
description: Set it to https://app.staxpayments.com/#/bill/ to enable a clickable button in the invoice email, directing customers to our Stax bill pay page. Use a different URL only if you have a custom domain configured with Stax Connect.
default: https://app.staxpayments.com/#/bill/
invoice_date_at:
type: string
description: Optional field. Defaults to current timestamp if blank. Used to track the date of service or work provided by the merchant.
due_at:
type: string
format: date-time
description: Invoice due date.
meta:
properties:
subtotal:
type: string
description: The subtotal amount of the invoice, excluding taxes and additional charges.
tax:
type: string
description: The tax amount applied to the invoice.
lineItems:
type: array
items:
properties:
item:
type: string
description: Name of item.
price:
type: number
description: Price of the item.
quantity:
type: number
description: Amount of the item.
details:
type: string
description: Description of item.
id:
type: string
description: ID is optional and corresponds to the Stax Catalog Item Id.
productCode:
type: string
description: Unique product code.
commodityCode:
type: string
description: Merchant defined code that categorizes a line item.
unitOfMeasure:
type: string
description: Unit in which the item is sold. e.g., feet, each, litre, GB.
tax:
type: number
description: Tax amount applied to the line item.
taxRate:
type: number
description: Tax Rate for this line item or service.
discountRate:
type: number
description: Discount applied to this specific line item.
total:
type: number
description: Total amount for the line item.
type: object
memo:
type: string
description: Use this string field to set a customer-facing memo on the Hosted Invoice Page.
reference:
type: string
description: An optional reference field that can be used for internal tracking or customer reference purposes.
internalMemo:
type: string
description: Optional string field to set an internal memo on the invoice, viewable within Stax Pay by the merchant.
isCCPaymentEnabled:
type: boolean
description: Boolean field that determines if customers can pay with a credit card on the Hosted Invoice Page.
isACHPaymentEnabled:
type: boolean
description: Determines whether the customer can pay with ACH(bank) on the Hosted Invoice Page.
isTipEnabled:
type: string
description: Determines if the customer can add a tip on the hosted invoice page, which will add to the transaction's total.
successRedirect:
type: string
description: If provided, and if the invoice is paid on the hosted bill payment page at app.staxpayments.com/#/bill, the user will be redirected to the supplied URL after a successful payment.
iscnpdigitalwallet:
type: boolean
description: 'Set to True if this is a digital wallet payment. '
required: []
type: object
description: Within this JSON object, certain fields are recognized by the Stax Pay web platform and are used for emailed receipts.
is_partial_payment_enabled:
type: boolean
description: Determines whether the customer can make a partial payment in the Stax Pay user interface. Set to true to allow partial payments, or false to disallow partial payments.
funding:
type: array
description: An array specifying funding instructions for payments made to this invoice. Each element should include an account_id that identifies the destination account and an amount specifying the portion of the payment to be allocated to that account. This feature requires Instructed Funding to be enabled.
items:
type: string
total:
type: number
format: float
description: The total of the invoice.
required:
- url
- customer_id
- total
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"id\": \"9ddcf02b-c2be-4f27-b758-dbc12b2aa924\",\n \"merchant_id\": \"dd36b936-1eb7-4ece-bebc-b514c6a36ebd\",\n \"user_id\": \"b58d7eee-e68d-4d12-a1f8-62f5e71382ae\",\n \"customer_id\": \"d45ee88c-8b27-4be8-8d81-77dda1b81826\",\n \"total\": 12,\n\t\"due_at\": \"2025-12-19 23:59:59\",\n\n \"meta\": {\n \"tax\":2,\n \"subtotal\":10,\n \"lineItems\": [\n {\n \"id\": \"optional-fm-catalog-item-id\",\n \"item\":\"Demo Item\",\n \"details\":\"this is a regular demo item\",\n \"quantity\":10,\n \"price\": 1\n }\n ],\n \"isCCPaymentEnabled\": true,\n \"isACHPaymentEnabled\": true,\n \"isTipEnabled\": true,\n \"internalMemo\": \"internalMemo\",\n \"memo\": \"customer facing memo\"\n },\n \"status\": \"DRAFT\",\n \"sent_at\": null,\n \"viewed_at\": null,\n \"paid_at\": null,\n \"schedule_id\": null,\n \"reminder_id\": null,\n \"payment_method_id\": \"\",\n \"url\": \"https://app.staxpayments.com/#/bill/\",\n \"is_webpayment\": false,\n \"is_partial_payment_enabled\": true\n \"deleted_at\": null,\n \"created_at\": \"2017-05-08 21:32:51\",\n \"updated_at\": \"2017-05-08 21:32:51\",\n \"payment_attempt_failed\": false,\n \"payment_attempt_message\": \"\",\n \"balance_due\": 10,\n \"total_paid\": 0,\n \"payment_meta\": [],\n \"customer\": {\n \"id\": \"d45ee88c-8b27-4be8-8d81-77dda1b81826\",\n \"firstname\": \"John\",\n \"lastname\": \"Smith\",\n \"company\": \"ABC INC\",\n \"email\": \"demo@abc.com\",\n \"cc_emails\": [\n \"demo1@abc.com\",\n \"demo2@abc.com\"\n ],\n \"phone\": \"1234567898\",\n \"address_1\": \"123 Rite Way\",\n \"address_2\": \"Unit 12\",\n \"address_city\": \"Orlando\",\n \"address_state\": \"FL\",\n \"address_zip\": \"32801\",\n \"address_country\": \"USA\",\n \"notes\": null,\n \"reference\": \"BARTLE\",\n \"options\": \"\",\n \"created_at\": \"2017-05-08 19:22:51\",\n \"updated_at\": \"2017-05-08 19:23:46\",\n \"deleted_at\": null,\n \"gravatar\": \"//www.gravatar.com/avatar/fe3e929dd80f1653c3a4b82812660061\"\n },\n \"user\": {\n \"id\": \"b58d7eee-e68d-4d12-a1f8-62f5e71382ae\",\n \"system_admin\": false,\n \"name\": \"Demo\",\n \"email\": \"contact@example.com\",\n \"email_verification_sent_at\": \"2017-03-29 15:27:19\",\n \"email_verified_at\": \"2017-03-29 15:27:21\",\n \"is_api_key\": false,\n \"created_at\": \"2017-01-11 21:44:02\",\n \"updated_at\": \"2017-04-24 15:41:58\",\n \"deleted_at\": null,\n \"gravatar\": \"//www.gravatar.com/avatar/157965dea7cd2f44e349382d1d791650\",\n \"team_admin\": null,\n \"team_enabled\": null,\n \"team_role\": null\n },\n \"files\": [],\n \"child_transactions\": [],\n \"reminder\": null\n}"
'422':
description: '422'
content:
application/json:
examples:
Result:
value: "{\n \"customer_id\": [\"The customer id field is required.\"],\n \"url\": [\"The url field is required.\"],\n \"meta\": [\"The meta field is required.\"],\n \"meta\": [\"The meta field should not contain more than 60.000 characters\"]\n \"total\": [\"The total field is required.\"],\n \"files.0\": [\"The selected files.0 is invalid.\"]\n\n}"
tags:
- Invoice
get:
summary: Get All Invoices
description: ''
operationId: get-all-invoices
parameters:
- name: id
in: query
schema:
type: string
- name: name
in: query
schema:
type: string
- name: keywords[]
in: query
schema:
type: string
- name: company_name
in: query
schema:
type: string
- name: email
in: query
schema:
type: string
- name: address
in: query
schema:
type: string
- name: price
in: query
schema:
type: string
- name: schedule_id
in: query
schema:
type: string
- name: payment_method
in: query
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
total: 2
per_page: 25
current_page: 1
last_page: 4
next_page_url: null
prev_page_url: null
from: 1
to: 25
data:
- id: 8cbb929d-55d9-43b5-8d90-af3cab04ce17
merchant_id: dd36b936-1eb7-4ece-bebc-b514c6a36ebd
user_id: b58d7eee-e68d-4d12-a1f8-62f5e71382ae
customer_id: 17a51927-312e-47e3-9b23-412f298888e3
total: 10
meta:
tax: 0
subtotal: 10
lineItems:
- id: optional-fm-catalog-item-id
item: Demo Item
details: This is a demo item
quantity: 1
price: 10
status: SENT
sent_at: '2025-04-24 15:16:15'
viewed_at: null
paid_at: null
schedule_id: e70c126c-f7b7-4673-a129-5b650f00f84a
reminder_id: a6411419-0e95-4380-9d4e-94bdaced9d14
payment_method_id: ''
url: https://app.staxpayments.com/#/bill/
is_webpayment: false
deleted_at: null
created_at: '2025-04-08 20:49:04'
updated_at: '2025-04-24 15:16:15'
payment_attempt_failed: false
payment_attempt_message: ''
balance_due: 12
total_paid: 0
payment_meta: []
customer:
id: 17a51927-312e-47e3-9b23-412f298888e3
firstname: David
lastname: Bowie
company: Your Company Demo
email: staxdemo@demo.com
cc_emails: null
phone: '5555555555'
address_1: 608 Orange Ave.
address_2: Unit 12
address_city: Orlando
address_state: FL
address_zip: '32801'
address_country: USA
notes: null
reference: ''
options: ''
created_at: '2024-12-01 16:44:33'
updated_at: '2024-12-01 16:44:33'
deleted_at: null
gravatar: //www.gravatar.com/avatar/144fa42eb34883ecb00cbc3f81a060a1
user:
id: b58d7eee-e68d-4d12-a1f8-62f5e71382ae
system_admin: false
name: Demo User
email: contact@example.com
email_verification_sent_at: '2025-03-29 15:27:19'
email_verified_at: '2025-03-29 15:27:21'
is_api_key: false
created_at: '2025-01-11 21:44:02'
updated_at: '2025-04-24 15:41:58'
deleted_at: null
gravatar: //www.gravatar.com/avatar/157965dea7cd2f44e349382d1d791650
team_admin: null
team_enabled: null
team_role: null
files: []
child_transactions: []
reminder:
id: a6411419-0e95-4380-9d4e-94bdaced9d14
merchant_id: ''
user_id: ''
active: true
count: 3
rule: FREQ=DAILY;COUNT=3;INTERVAL=5;WKST=MO;DTSTART=20250413T204904Z
last_run_at: '2025-04-24 15:16:15'
next_run_at: null
event: InvoiceReminder
meta: null
payment_method_id: ''
customer_id: 17a51927-312e-47e3-9b23-412f298888e3
created_at: '2025-04-08 20:49:04'
updated_at: '2025-04-24 15:16:15'
deleted_at: null
rule_text: every 5 days for 3 times
future_occurrences: []
max: 3
end_at: null
status: COMPLETED
- id: 2744a7fd-d354-47a0-a99e-f6f3e96bffe1
merchant_id: dd36b936-1eb7-4ece-bebc-b514c6a36ebd
user_id: b58d7eee-e68d-4d12-a1f8-62f5e71382ae
customer_id: ffed4fd2-977e-412f-9048-293bb5e46c68
total: 77
meta:
lineItems:
- item: ''
details: ''
quantity: 1
price: '77'
memo: ''
subtotal: 77
tax: ''
type: invoice/schedule
status: VIEWED
sent_at: '2025-04-08 20:49:03'
viewed_at: null
paid_at: '2025-04-08 20:49:03'
schedule_id: 85211708-5995-4e2f-83c3-7017cdbee25f
reminder_id: null
payment_method_id: ad03da14-4f2b-4b43-8e12-e8d784018d79
url: https://app.staxpayments.com/#/bill/
is_webpayment: false
deleted_at: null
created_at: '2025-04-08 20:49:02'
updated_at: '2025-04-24 19:38:42'
payment_attempt_failed: false
payment_attempt_message: ''
balance_due: 77
total_paid: 0
payment_meta:
lineItems:
- item: ''
details: ''
quantity: 1
price: '77'
memo: ''
subtotal: 77
tax: ''
type: invoice/schedule
customer:
id: ffed4fd2-977e-412f-9048-293bb5e46c68
firstname: STAX
lastname: USER
company: Demo Company Name
email: staxdemo@demo.com
cc_emails: null
phone: '5555555555'
address_1: 608 Orange Ave.
address_2: Unit 12
address_city: Orlando
address_state: FL
address_zip: '32801'
address_country: USA
notes: null
reference: BARTLE
options: ''
created_at: '2025-03-31 17:04:27'
updated_at: '2025-03-31 17:04:27'
deleted_at: null
gravatar: //www.gravatar.com/avatar/144fa42eb34883ecb00cbc3f81a060a1
user:
id: b58d7eee-e68d-4d12-a1f8-62f5e71382ae
system_admin: false
name: Demo
email: contact@example.com
email_verification_sent_at: '2025-03-29 15:27:19'
email_verified_at: '2025-03-29 15:27:21'
is_api_key: false
created_at: '2025-01-11 21:44:02'
updated_at: '2025-04-24 15:41:58'
deleted_at: null
gravatar: //www.gravatar.com/avatar/157965dea7cd2f44e349382d1d791650
team_admin: null
team_enabled: null
team_role: null
files: []
child_transactions:
- id: 61b4a861-446f-45f8-b319-2ce98876751b
invoice_id: 2744a7fd-d354-47a0-a99e-f6f3e96bffe1
reference_id: 16427f4d-f33c-4e07-bfd3-beb2dfa55ca2
recurring_transaction_id: ''
type: refund
source: null
merchant_id: dd36b936-1eb7-4ece-bebc-b514c6a36ebd
user_id: b58d7eee-e68d-4d12-a1f8-62f5e71382ae
customer_id: ffed4fd2-977e-412f-9048-293bb5e46c68
payment_method_id: ad03da14-4f2b-4b43-8e12-e8d784018d79
is_manual: null
success: true
message: null
meta:
lineItems:
- item: ''
details: ''
quantity: 1
price: '77'
memo: ''
subtotal: 77
tax: ''
type: invoice/schedule
total: 77
method: card
pre_auth: false
last_four: '1111'
receipt_email_at: null
receipt_sms_at: null
created_at: '2025-04-24 19:38:41'
updated_at: '2025-04-24 19:38:41'
total_refunded: null
is_refundable: false
is_voided: null
is_voidable: false
schedule_id: 85211708-5995-4e2f-83c3-7017cdbee25f
customer:
id: ffed4fd2-977e-412f-9048-293bb5e46c68
firstname: STAX
lastname: USER
company: Demo Company Name
email: staxdemo@demo.com
cc_emails: null
phone: '5555555555'
address_1: 608 Orange Ave.
address_2: Unit 12
address_city: Orlando
address_state: FL
address_zip: '32801'
address_country: USA
notes: null
reference: BARTLE
options: ''
created_at: '2025-03-31 17:04:27'
updated_at: '2025-03-31 17:04:27'
deleted_at: null
gravatar: //www.gravatar.com/avatar/144fa42eb34883ecb00cbc3f81a060a1
child_transactions: []
files: []
payment_method:
id: ad03da14-4f2b-4b43-8e12-e8d784018d79
customer_id: ffed4fd2-977e-412f-9048-293bb5e46c68
merchant_id: dd36b936-1eb7-4ece-bebc-b514c6a36ebd
user_id: b58d7eee-e68d-4d12-a1f8-62f5e71382ae
nickname: 'VISA: STAX USER (ending in: 1111)'
is_default: 0
method: card
person_name: STAX USER
card_type: visa
card_last_four: '1111'
card_exp: '022020'
bank_name: null
bank_type: null
bank_holder_type: null
address_1: null
address_2: null
address_city: null
address_state: null
address_zip: null
address_country: USA
purged_at: null
deleted_at: null
created_at: '2025-04-05 15:30:05'
updated_at: '2025-04-05 15:30:05'
card_exp_datetime: '2020-02-29 23:59:59'
customer:
id: ffed4fd2-977e-412f-9048-293bb5e46c68
firstname: STAX
lastname: USER
company: Demo Company Name
email: staxdemo@demo.com
cc_emails: null
phone: '5555555555'
address_1: 608 Orange Ave.
address_2: Unit 12
address_city: Orlando
address_state: FL
address_zip: '32801'
address_country: USA
notes: null
reference: BARTLE
options: ''
created_at: '2025-03-31 17:04:27'
updated_at: '2025-03-31 17:04:27'
deleted_at: null
gravatar: //www.gravatar.com/avatar/144fa42eb34883ecb00cbc3f81a060a1
user:
id: b58d7eee-e68d-4d12-a1f8-62f5e71382ae
system_admin: false
name: Demo
email: contact@example.com
email_verification_sent_at: '2025-03-29 15:27:19'
email_verified_at: '2025-03-29 15:27:21'
is_api_key: false
created_at: '2025-01-11 21:44:02'
updated_at: '2025-04-24 15:41:58'
deleted_at: null
gravatar: //www.gravatar.com/avatar/157965dea7cd2f44e349382d1d791650
team_admin: null
team_enabled: null
team_role: null
- id: 16427f4d-f33c-4e07-bfd3-beb2dfa55ca2
invoice_id: 2744a7fd-d354-47a0-a99e-f6f3e96bffe1
reference_id: ''
recurring_transaction_id: ''
type: charge
source: null
merchant_id: dd36b936-1eb7-4ece-bebc-b514c6a36ebd
user_id: b58d7eee-e68d-4d12-a1f8-62f5e71382ae
customer_id: ffed4fd2-977e-412f-9048-293bb5e46c68
payment_method_id: ad03da14-4f2b-4b43-8e12-e8d784018d79
is_manual: null
success: true
message: null
meta:
lineItems:
- item: ''
details: ''
quantity: 1
price: '77'
memo: ''
subtotal: 77
tax: ''
type: invoice/schedule
total: 77
method: card
pre_auth: false
last_four: '1111'
receipt_email_at: null
receipt_sms_at: null
created_at: '2025-04-08 20:49:02'
updated_at: '2025-04-08 20:49:02'
total_refunded: 77
is_refundable: false
is_voided: false
is_voidable: false
schedule_id: 85211708-5995-4e2f-83c3-7017cdbee25f
customer:
id: ffed4fd2-977e-412f-9048-293bb5e46c68
firstname: STAX
lastname: USER
company: Demo Company Name
email: staxdemo@demo.com
cc_emails: null
phone: '5555555555'
address_1: 608 Orange Ave.
address_2: Unit 12
address_city: Orlando
address_state: FL
address_zip: '32801'
address_country: USA
notes: null
reference: BARTLE
options: ''
created_at: '2025-03-31 17:04:27'
updated_at: '2025-03-31 17:04:27'
deleted_at: null
gravatar: //www.gravatar.com/avatar/144fa42eb34883ecb00cbc3f81a060a1
child_transactions:
- id: 61b4a861-446f-45f8-b319-2ce98876751b
invoice_id: 2744a7fd-d354-47a0-a99e-f6f3e96bffe1
reference_id: 1642
# --- truncated at 32 KB (171 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stax/refs/heads/main/openapi/stax-invoice-api-openapi.yml