{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml","api-docs-apis/openapi.yaml":"api-docs-apis/openapi.yaml"},"props":{"metadata":{"markdoc":{"tagList":["replay-openapi"]},"type":"markdown"},"seo":{"title":"Reefpay Docs","description":"Reefpay is the groundbreaking payment gateway that lets you integrate with the future of payments."},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"batch-reports","__idx":0},"children":["Batch reports"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Endpoint"},"children":["Endpoint"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Use it to"},"children":["Use it to"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/batches"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List batches"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/batches/status"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check what has changed since you last looked"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/batches/{id}/transactions"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read a known batch's transactions"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/batches/transactions"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read the open batch, before it has an ID"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"list-batches","__idx":1},"children":["List batches"]},{"$$mdtype":"Tag","name":"ReplayOpenApi","attributes":{"descriptionFile":"api-docs-apis/openapi.yaml","operationId":"listBatches","parameters":{},"options":{},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["This endpoint pages differently from the transaction endpoints."]}," It takes"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skip"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["take"]}," where transactions take ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offset"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limit"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_column"]}," ","where transactions take ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_by"]},". The two were built at different times and have"," ","not been reconciled."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Here"},"children":["Here"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"On GET /v1/transactions"},"children":["On ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/transactions"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skip"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offset"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["take"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limit"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_column"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_by"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search_text"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["term"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["no equivalent"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"check-for-changes","__idx":2},"children":["Check for changes"]},{"$$mdtype":"Tag","name":"ReplayOpenApi","attributes":{"descriptionFile":"api-docs-apis/openapi.yaml","operationId":"listBatchStatus","parameters":{},"options":{},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"read-a-batchs-transactions","__idx":3},"children":["Read a batch's transactions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once a batch has an ID, ask for its contents directly."]},{"$$mdtype":"Tag","name":"ReplayOpenApi","attributes":{"descriptionFile":"api-docs-apis/openapi.yaml","operationId":"listBatchTransactions","parameters":{},"options":{},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_bad_transactions"]}," defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"read-the-open-batch","__idx":4},"children":["Read the open batch"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A batch has no ID until it exists, so there is a separate endpoint for the batch"," ","that is still accumulating."]},{"$$mdtype":"Tag","name":"ReplayOpenApi","attributes":{"descriptionFile":"api-docs-apis/openapi.yaml","operationId":"listBatchTransactionsUnknownBatchId","parameters":{},"options":{},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use it to see what will settle at the next close. It takes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_id"]},","," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["integration"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created_at"]},", a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timezone"]}," from the supported list, and"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["card_type"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["card_type"]}," here is not the same parameter as on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/transactions"]},"."]}," It is"," ","narrower:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"GET /v1/transactions"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/transactions"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"GET /v1/batches/transactions"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/batches/transactions"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Accepts"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREDIT"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEBIT"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNKNOWN"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREDIT"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEBIT"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Comma-separated list"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNKNOWN"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Matches undetermined rows"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On this endpoint ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREDIT"]}," also returns the rows whose card type was never"," ","determined, which is the behavior ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNKNOWN"]}," gives you on the other one."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"reconciling","__idx":5},"children":["Reconciling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The order that works:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/batches/status"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["last_checked_at"]}," to find closed batches."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For each, read ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/batches/{id}/transactions"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Match the batch total against the deposit."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When they disagree, re-read with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_bad_transactions=true"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For ACH, keep watching after settlement. A return can arrive days later and will"," ","not appear in the batch you already reconciled. See"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/after-the-payment/find-and-report-on-transactions"},"children":["Find and report on transactions"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":6},"children":["Next steps"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/after-the-payment/batches-and-settlement"},"children":["Batches and settlement"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/after-the-payment/find-and-report-on-transactions"},"children":["Find and report on transactions"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/platforms/client-reports"},"children":["Client reports"]}]}]}]},"headings":[{"value":"Batch reports","id":"batch-reports","depth":1},{"value":"List batches","id":"list-batches","depth":2},{"value":"Check for changes","id":"check-for-changes","depth":2},{"value":"Read a batch's transactions","id":"read-a-batchs-transactions","depth":2},{"value":"Read the open batch","id":"read-the-open-batch","depth":2},{"value":"Reconciling","id":"reconciling","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"title":"Batch reports","shortTitle":"Batch reports","intro":"Four endpoints for reconciling settlement: list batches, check status, and read the transactions inside a batch whether or not you know its ID.","type":"how-to","seo":{"title":""}},"lastModified":"2026-09-17T09:08:13.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/after-the-payment/batch-reports","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}