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, Reverse match, and Delete 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 |
|---|---|---|
pageSizePage size. Default 20, maximum 100. Example: 20 | integer | Optional |
cursorOpaque cursor: pass the nextCursor of the previous response. Valid only with the same sortBy, sortOrder, and filters. Omit it for the first page. Example: Y3JlYXRlZF9hdDpkZXNjfDIwMjYtMDktMDhUMTQ6MTA6MDAuMDAwWnw3ZDljMTNlNA | string Max 512 | Optional |
includeTotaltotal is returned on the first page unless includeTotal=false, and on cursor pages only when includeTotal=true. Skip it to save a count. Allowed values truefalse | boolean | Optional |
pageDeprecated. Offset page number kept for older integrations; use cursor instead. Ignored when cursor is sent. Example: 2 | 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 | ||
statusesComma-separated list of statuses, for example Example: confirmed,active | string No maximum | Optional |
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. Despite the name, pass the transaction code ( Example: TX-8891 | string No maximum | Optional |
invoiceIdFilter by invoice. Despite the name, pass the invoice number shown in Invunion. 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 | More than 100 requests in one minute from this API key or IP address. Wait for the Retry-After header (seconds) and retry. |
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. |