This payment link directs customers to a checkout page where they complete the payment. The merchant does not need to build the checkout user interface, its dialog, or embed any checkout flow. No POS terminal and no custom integration are required. A payment link can be texted or emailed to a customer directly.
It may be set up as a one-time payment or as a standing "pay us" page for repeat use. Merchants choose between:
SingleUse, a link tied to a specific invoice or order, which closes itself out after that one payment.MultiUse, a link that keeps accepting payments from the same or different customers indefinitely.
Every link moves through a simple lifecycle — Active, Inactive, Expired, or Completed. Flute tracks how many payments it's received and the total collected, so the merchant always knows how a given link is performing.
A payment link is template-based. When a customer opens it, Flute auto-generates a short-lived payment session from the link's stored configuration. It then hands the customer to the hosted checkout page. That means the link itself never processes a payment directly. Six endpoints cover the resource. These include create, list, get, a JSON Merge Patch-style partial update, a soft delete, and a share-by-SMS-or-email action. Request and response fields cover the amount, currency, link type, customer, reference ID, name, description, and expiration. There are response-only fields such as short URL, payment count, and total collected amount.
GET {{baseURL}}/v2/payment-links
This endpoint lists payment links for the authenticated merchant.
It returns a paginated set of payment links.
See Also:
To create a new payment link, see POST /v2/payment-links.
To retrieve a payment link by identifier, see GET /v2/payment-links/{{paymentLinkId}}.
To update a payment link, see PATCH /v2/payment-links/{{paymentLinkId}}.
To delete a payment link, see DELETE /v2/payment-links/{{paymentLinkId}}.
To share a payment link, see POST /v2/payment-links/{{paymentLinkId}}/share.
Specifies the page number of the returned search results.
A page is considered each set of the pageSize values.
The page count is zero-based. The maximum for pageIndex, or the page number, is the pageSize divided by the total count rounded down. For example, the pageSize is 50 and the total is 130. That means there are three pages, but the pageIndex value is in the inclusive range from zero to two.
Value restrictions include:
- A value less than zero is not permitted.
- Values equal to or greater than
totalPagesend successfully but will not return any items.
For page size information, see pageSize.
Example: 0
Specifies the number of items for each page of the returned search results.
A page is considered each set of the pageSize values.
The page count is zero-based. The maximum for pageIndex, or the page number, is the pageSize divided by the total count rounded down. For example, the pageSize is 50 and the total is 130. That means there are three pages, but the pageIndex value is in the inclusive range from zero to two.
For page numbering information, see pageIndex.
Example: 50
Filters using a search string.
This performs a case-insensitive search that matches exactly or partially.
The field does not have to be specified. If the results are to be sorted, use the sortBy field to specify the sort field.
The search includes the following fields:
name
description
paymentLinkId
Example:
Peppared Street Cafe
Street
ree
Specifies the effective status to filter by.
Valid values are:
| Status | Description |
|---|---|
| Active | The link is open and can accept a payment. |
| Completed | A SingleUse link that has received its one payment. |
| Expired | The link's expiresOn date has passed. |
| Inactive | The link was deactivated and cannot accept a payment. |
Specifies the sort order.
The sort order is specified by the sortOrder value.
The field that gets sorted by is specified by the sortBy value.
Valid values are:
| Value | Description |
|---|---|
| asc | Sort results from the lowest value to the highest value. |
| desc | Sort results from the highest value to the lowest value. |
- Sandbox environmenthttps://sandbox.api.flute.com/v2/payment-links
- Production environmenthttps://api.flute.com/v2/payment-links
curl -i -X GET \
'https://sandbox.api.flute.com/v2/payment-links?pageIndex=0&pageSize=20&search=Peppared%20Street%20Cafe&linkType=SingleUse&paymentLinkStatus=Active&sortBy=ContactName&sortOrder=desc' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'OK
Indicates an object describing the pagination status.
If additional pages to review are needed, repeat the exact same search but include a new pageIndex value. Typically, this will increment the current pageIndex by one. However, any valid value may be used. Value restrictions include:
- A value less than zero is not permitted.
- Values equal to or greater than
totalPagesend successfully but will not return any items.
{ "items": [ { "paymentLinkId": "6f2a8b3c-9d4e-4f1a-8b7c-3e5d6a9f0c1b", "linkType": "SingleUse", "paymentMethods": { "card": { "enabled": true, "processorId": "d529945e-8d10-4cb4-9dc3-718e57f3f14e" } }, "baseAmount": 25, "currencyCode": "USD", "paymentLinkStatus": "Active", "name": "Spring campaign", "description": null, "shortUrl": "https://pay.example.com/l/abc123", "customerId": "3c4d5e6f-7a8b-49c0-8d1e-2f3a4b5c6d7e", "customerFirstName": "Alexandro", "customerLastName": "Peppared", "referenceId": "ORDER-1042", "expiresOn": "2026-09-15T00:00:00.000Z", "paymentCount": 0, "totalCollectedAmount": 0, "lastPaymentOn": null, "createdOn": "2026-08-12T09:15:22.100Z", "modifiedOn": "2026-08-12T09:15:22.100Z" } ], "pageInfo": { "pageIndex": 0, "pageSize": 20, "totalItems": 150, "totalPages": 8, "hasMore": true } }