Skip to content

Invoices

An invoice represents a billed amount a merchant sends to a customer for payment.

A normal collection is an amount received immediately at the point of sale. A direct transaction captures a customer's card or bank details right away.

An invoice works differently. It lets the merchant establish the amount owed first. The customer can then act on it separately. The customer reviews an itemized total. Then the customer pays by card or ACH, on their own schedule.

The Invoices endpoints support creating, editing, publishing, and collecting payment on an invoice. A draft invoice can be updated or deleted, but a published invoice cannot be deleted. Once published, an invoice can be submitted for card or ACH payment, canceled, or marked as paid. Additional endpoints send email or SMS notifications, calculate totals, and download a PDF copy.

For more information about invoices, see Invoices.

The following invoice endpoints are available.

EndpointDescription
GET /pay-int-api/invoicesLists invoices for the current merchant, filtered by the specified query parameters.
POST /pay-int-api/invoicesCreates a new invoice in Draft status.
GET /pay-int-api/invoices/{invoiceId}Retrieves a single invoice's details.
PUT /pay-int-api/invoices/{invoiceId}Updates a specified invoice.
DELETE /pay-int-api/invoices/{invoiceId}Deletes an invoice; published invoices cannot be deleted.
POST /pay-int-api/invoices/publishPublishes an invoice, sending it to the customer.
POST /pay-int-api/invoices/{invoiceId}/submitSubmits an invoice for card payment processing.
POST /pay-int-api/invoices/{invoiceId}/ach/submitSubmits an invoice for ACH payment processing.
PUT /pay-int-api/invoices/{invoiceId}/cancelCancels a published, unpaid invoice.
PUT /pay-int-api/invoices/{invoiceId}/mark-as-paidMarks a published, unpaid invoice as paid.
GET /pay-int-api/invoices/{invoiceId}/calculationsRetrieves the calculated totals for an invoice.
GET /pay-int-api/invoices/{invoiceId}/download-pdfDownloads a PDF copy of the invoice.
POST /pay-int-api/invoices/{invoiceId}/send-email-notificationSends the invoice to the customer by email.
POST /pay-int-api/invoices/{invoiceId}/send-published-sms-notificationSends the invoice to the customer by SMS.

Lists a collection of invoices

Request

GET {{baseURL}}/pay-int-api/invoices

This endpoint retrieves a paginated list of invoices belonging to the current merchant.

Results can be filtered by date range, status, or a search string. Filterable dates include when the invoice was issued, when it's due, and when it was paid. If no filters are specified, every invoice for the merchant is returned. The response includes pagination details along with each invoice's summary information.

The following is an example request. This example filters for Published invoices (status=2), limits the results to 10 per page, and searches for "Peppared", part of the company name "Peppared Street Cafe".

GET /pay-int-api/invoices?status=2&pageSize=10&search=Peppared HTTP/1.1
Authorization: Bearer {{accessToken}}
x-api-version: 1.0

See Also:
To create an invoice, see POST /pay-int-api/invoices.
To retrieve an invoice by ID, see GET /pay-int-api/invoices/{invoiceId}.
To update an invoice, see PUT /pay-int-api/invoices/{invoiceId}.
To delete an invoice, see DELETE /pay-int-api/invoices/{invoiceId}.

Security
Bearer
Query
pageinteger, (int32)

Specifies the page number of the returned search results.

A page is considered each set of the pageSize value.

The maximum page value is the pageSize divided by the total count rounded up. The count is zero-based. For example, if pageSize is 50 and the total is 130, there are three pages. The maximum page value is 2.

Values above the maximum page value will complete successfully but not return any items.

Example: 0

Default:0
pageSizeinteger, (int32)

Specifies the number of items for each page of the returned search results.

A page is considered each set of the pageSize value.

The maximum page value is the pageSize divided by the total count rounded up. The count is zero-based. For example, if pageSize is 50 and the total is 130, there are three pages. The maximum page value is 2.

Example: 50

Default:15
ascboolean

Specifies the sort order.

The sort field is specified by the orderBy value.

If true, the sort order is ascending.
If false, the sort order is descending.

Example: false

Default:false
orderBystring

Specifies the field the results get ordered by.

The sort order is specified by the asc value.

Example: contactName

searchstring

Specifies the search string.

This performs a case insensitive, matching, or partially matching search.

Fields does not have to be specified. If the results are to be sorted, use the field orderby to specify the sort field.

Example: Peppared

Example:search=Peppared
issueDateFromstring, (date-time)

Specifies the start date-time (in an ISO 8601 date-time UTC format) the invoice was issued.

The fields issueDateFrom and issueDateTo can be used together to form an inclusive date-time range.

Examples:
2026-02
2026-02-19
2026-02-19T20:24:52.934Z

Example: 2026-02-19T20:24:52.934Z

Example:issueDateFrom=2026-02-19T20:24:52.934Z
issueDateTostring, (date-time)

Specifies the end date-time (in an ISO 8601 date-time UTC format) the invoice was issued.

The fields issueDateFrom and issueDateTo can be used together to form an inclusive date-time range.

Examples:
2026-02
2026-02-21
2026-02-21T20:24:52.934Z

Example: 2026-03-19T20:24:52.934Z

Example:issueDateTo=2026-03-19T20:24:52.934Z
dueDateFromstring, (date-time)

Specifies the start date-time (in an ISO 8601 date-time UTC format) the invoice is due.

The fields dueDateFrom and dueDateTo can be used together to form an inclusive date-time range.

Examples:
2026-02
2026-02-19
2026-02-19T20:24:52.934Z

Example: 2026-03-19T20:24:52.934Z

Example:dueDateFrom=2026-03-19T20:24:52.934Z
dueDateTostring, (date-time)

Specifies the end date-time (in an ISO 8601 date-time UTC format) the invoice is due.

The fields dueDateFrom and dueDateTo can be used together to form an inclusive date-time range.

Examples:
2026-02
2026-02-21
2026-02-21T20:24:52.934Z

Example: 2026-02-21T20:24:52.934Z

Example:dueDateTo=2026-02-21T20:24:52.934Z
paymentDateFromstring, (date-time)

Specifies the start date-time (in an ISO 8601 date-time UTC format) the invoice was paid.

The fields paymentDateFrom and paymentDateTo can be used together to form an inclusive date-time range.

Examples:
2026-02
2026-02-19
2026-02-19T20:24:52.934Z

Example: 2026-03-19T20:24:52.934Z

Example:paymentDateFrom=2026-03-19T20:24:52.934Z
paymentDateTostring, (date-time)

Specifies the end date-time (in an ISO 8601 date-time UTC format) the payment was paid.

The fields paymentDateFrom and paymentDateTo can be used together to form an inclusive date-time range.

Examples:
2026-02
2026-02-21
2026-02-21T20:24:52.934Z

Example: 2026-02-21T20:24:52.934Z

Example:paymentDateTo=2026-02-21T20:24:52.934Z
statusinteger, (int32)

Specifies the status of the invoice.

Possible values:

ValueName
1Draft
2Published
3Paid
4Expired
5Canceled
6ProcessingPayment
7Refunded

Example: 2

Example:status=2
Headers
x-api-versionstring

Specifies the API version to use for the request.

Example: 1.0

Example:1.0
curl -i -X GET \
  'https://developer.flute.com/_mock/api-reference/pay-int-api/invoices?page=0&pageSize=15&asc=false&orderBy=string&search=Peppared&issueDateFrom=2026-02-19T20%3A24%3A52.934Z&issueDateTo=2026-03-19T20%3A24%3A52.934Z&dueDateFrom=2026-03-19T20%3A24%3A52.934Z&dueDateTo=2026-02-21T20%3A24%3A52.934Z&paymentDateFrom=2026-03-19T20%3A24%3A52.934Z&paymentDateTo=2026-02-21T20%3A24%3A52.934Z&status=2' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'x-api-version: 1.0'

Responses

OK

Bodyapplication/json
itemsArray of objects or null

Invoices for the current page.

totalinteger, (int32)

Indicates the total number of invoices found.

Example: 5

Example:5
Response
{ "items": [ { "id": "f01339ec-8184-48c7-b58d-0780d6499ef4", "number": "INV-00042", "customerName": "Alexandro Peppared", "issueDate": "2026-02-19T20:24:52.934Z", "dueDate": "2026-02-19T20:24:52.934Z", "paymentDate": "2026-02-19T20:24:52.934Z", "totalAmount": 3219.45, "status": 2 } ], "total": 5 }