These are the endpoints you reconcile against. A deposit in the merchant's bank account corresponds to a batch, not to a transaction, so matching the two means reading batches.
| Endpoint | Use it to |
|---|---|
GET /v1/batches | List batches |
GET /v1/batches/status | Check what has changed since you last looked |
GET /v1/batches/{id}/transactions | Read a known batch's transactions |
GET /v1/batches/transactions | Read the open batch, before it has an ID |
This endpoint pages differently from the transaction endpoints. It takes skip and take where transactions take offset and limit, and sort_column where transactions take sort_by. The two were built at different times and have not been reconciled.
| Here | On GET /v1/transactions |
|---|---|
skip | offset |
take | limit |
sort_column | sort_by |
search_text, term | no equivalent |
last_checked_at returns what has changed since that timestamp, which makes this the endpoint to poll on a schedule rather than re-listing everything.
Once a batch has an ID, ask for its contents directly.
include_bad_transactions defaults to false. Turn it on when you are investigating a mismatch — a batch total that does not agree with your own figures often has an excluded transaction behind it.
A batch has no ID until it exists, so there is a separate endpoint for the batch that is still accumulating.
Use it to see what will settle at the next close. It takes client_id, integration, created_at, a timezone from the supported list, and card_type.
card_type here is not the same parameter as on GET /v1/transactions. It is narrower:
GET /v1/transactions | GET /v1/batches/transactions | |
|---|---|---|
| Accepts | CREDIT, DEBIT, UNKNOWN | CREDIT, DEBIT |
| Comma-separated list | Yes | No |
UNKNOWN | Matches undetermined rows | Returns 400 |
On this endpoint CREDIT also returns the rows whose card type was never determined, which is the behavior UNKNOWN gives you on the other one.
The order that works:
- Poll
GET /v1/batches/statuswithlast_checked_atto find closed batches. - For each, read
GET /v1/batches/{id}/transactions. - Match the batch total against the deposit.
- When they disagree, re-read with
include_bad_transactions=true.
For ACH, keep watching after settlement. A return can arrive days later and will not appear in the batch you already reconciled. See Find and report on transactions.