List matches
List reconciliation matches for the authenticated tenant.
Returns a paginated list of matches with joined transaction and invoice fields. Filters combine with AND.
This is how you find a match without a UUID from the product. Filter with invoice number (`invoiceId`) and transaction code (`transactionId`). A live auto-match is unique for that pair. Each itemβs `id` is the UUID required by Get match, Update match, and Cancel match.
See also
- Matches . Which call to use for each change.
- Get invoice (GET
/api/v1/invoices/:code). Live matches are also nested on the invoice. - Get transaction (GET
/api/v1/transactions/:code). Live matches are also nested on the transaction.
Query parameters
| Name | Type | Required |
|---|---|---|
pagePage number. Default 1. Example: 1 | integer | Optional |
pageSizePage size. Default 20, maximum 100. Example: 20 | integer | Optional |
sortBySort column. Default created_at. | string No maximum | Optional |
Allowed values created_atmatched_amountconfidence_score | ||
sortOrderSort direction. Default desc. Allowed values ascdesc | string No maximum | Optional |
statusFilter by match status. | string No maximum | Optional |
Allowed values activecancelledpending_reviewconfirmedrejected | ||
matchTypeFilter by how the match was created. | string No maximum | Optional |
Allowed values ai_automanualrulewallet | ||
minConfidenceMinimum confidence_score (0-100). Example: 80 | number | Optional |
transactionIdFilter by transaction code (`transaction_code`). Example: TX-8891 | string No maximum | Optional |
invoiceIdFilter by invoice number. Example: INV-2026-0042 | string No maximum | Optional |
Errors
This operation can return the following errors in addition to generic HTTP failures.
| Error | HTTP code | Description |
|---|---|---|
Missing Bearer token | 401 | The Authorization header is missing or is not a Bearer token. |
Invalid or revoked API key | 401 | The API key is unknown, malformed, expired, or has been revoked. |
API key is missing scope matches:read | 403 | The key does not include matches:read. A write scope does not imply the matching read scope. |
Too many requests, please try again later | 429 | Wait and retry. The Retry-After header is the number of seconds to wait. |
Invalid query parameters | 400 | A query value failed validation. details lists field and message. |
Internal server error | 500 | Unexpected server error. The JSON body includes correlationId. Retry with backoff. |