{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml","api-docs-apis/openapi.yaml":"api-docs-apis/openapi.yaml"},"props":{"metadata":{"markdoc":{"tagList":["replay-openapi","openapi-response-sample"]},"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":"find-and-report-on-transactions","__idx":0},"children":["Find and report on transactions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Two endpoints. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/transactions/{id}"]}," reads one; ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/transactions"]}," ","searches. Both return the same transaction object you got when you created it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Because there are no webhooks, these are also how you learn about anything that"," ","happens after the response: settlement, and ACH returns."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"read-one-transaction","__idx":1},"children":["Read one transaction"]},{"$$mdtype":"Tag","name":"ReplayOpenApi","attributes":{"descriptionFile":"api-docs-apis/openapi.yaml","operationId":"retrieveTransaction","parameters":{},"options":{},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"OpenApiResponseSample","attributes":{"descriptionFile":"api-docs-apis/openapi.yaml","operationId":"retrieveTransaction","exampleKey":"saleWithCard","responseSamplesResolved":[{"lang":"json","title":"200 application/json","source":"{\n  \"id\": \"TRANSACTION-01KEW32V6YNV11T33XGDR7TGWC\",\n  \"reference_transaction_id\": null,\n  \"type\": \"SALE\",\n  \"result\": \"APPROVED\",\n  \"client_id\": \"CLIENT-01KFDKXMQ637EKEAY410MSQSXB\",\n  \"client_dba\": \"Acme Jewelry\",\n  \"integrations\": [\n    \"TSYS\"\n  ],\n  \"response_code\": \"00\",\n  \"response_description\": \"Approved\",\n  \"batch_id\": \"BATCH-01KEW32V6YNV11T33XGDR7TGWC\",\n  \"is_settled\": false,\n  \"time_created\": \"2026-07-15T14:22:05Z\",\n  \"amount\": 10000,\n  \"tip\": 0,\n  \"currency\": \"USD\",\n  \"payment_method\": {\n    \"type\": \"CARD\",\n    \"truncated_pan\": \"****-****-****-5439\",\n    \"payment_token\": \"PAYMENT_TOKEN-01KFDKXMQ637EKEAY410MSQSXB\",\n    \"expiry\": {\n      \"month\": \"01\",\n      \"year\": \"2028\"\n    },\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"entry_method\": \"keyed\",\n    \"auth_code\": \"123456\",\n    \"retrieval_reference_number\": \"000000603076\",\n    \"card_type\": \"CREDIT\",\n    \"card_brand\": \"Visa\",\n    \"cvv_result_code\": \"M\",\n    \"avs_result_code\": \"Y\",\n    \"avs_response\": \"Exact Match - Street address and postal code match\"\n  },\n  \"initiator\": \"CUSTOMER\",\n  \"network_transaction_id\": \"MCC1234567890\",\n  \"metadata\": {\n    \"order_id\": \"ORD-10432\",\n    \"sales_channel\": \"web\",\n    \"customer_reference\": \"cust-8891\"\n  }\n}"},{"lang":"json","title":"400 application/json","source":"{\n  \"error_code\": \"INVALID_REQUEST_DATA\",\n  \"error_message\": \"The API request contains invalid data.\",\n  \"details\": {\n    \"amount\": \"Invalid amount\",\n    \"payment_method.pan\": \"Malformed PAN\"\n  },\n  \"source\": {\n    \"system\": \"TSYS\",\n    \"code\": \"13\",\n    \"message\": \"Invalid amount\"\n  }\n}"},{"lang":"json","title":"401 application/json","source":"{\n  \"error_code\": \"NOT_AUTHENTICATED\",\n  \"error_message\": \"Access credentials missing or invalid.\",\n  \"details\": null,\n  \"source\": {\n    \"system\": null,\n    \"code\": null,\n    \"message\": null\n  }\n}"},{"lang":"json","title":"403 application/json","source":"{\n  \"error_code\": \"UNAUTHORIZED_ACTION\",\n  \"error_message\": \"Requested action is unavailable or forbidden.\",\n  \"details\": null,\n  \"source\": {\n    \"system\": null,\n    \"code\": null,\n    \"message\": null\n  }\n}"},{"lang":"json","title":"404 application/json","source":"{\n  \"error_code\": \"RESOURCE_NOT_FOUND\",\n  \"error_message\": \"Resource not found.\",\n  \"details\": null,\n  \"source\": {\n    \"system\": null,\n    \"code\": null,\n    \"message\": null\n  }\n}"},{"lang":"json","title":"500 application/json","source":"{\n  \"error_code\": \"SYSTEM_ERROR\",\n  \"error_message\": \"Internal system error.\",\n  \"details\": null,\n  \"source\": {\n    \"system\": \"TSYS\",\n    \"code\": \"96\",\n    \"message\": \"System malfunction\"\n  }\n}"}]},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A reporting read is not identical to the create response, and the differences are"," ","deliberate:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["card_type"]}," has a real value here."]}," On the create response it is always"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNKNOWN"]},", because the processor does not report it on the authorization."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_settled"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["batch_id"]}," are current"]},", rather than frozen at the moment"," ","of the request."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initiator"]}," comes back null"]}," on this endpoint. That is a known gateway"," ","defect, not a change of meaning — trust the create response for it."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"search-transactions","__idx":2},"children":["Search transactions"]},{"$$mdtype":"Tag","name":"ReplayOpenApi","attributes":{"descriptionFile":"api-docs-apis/openapi.yaml","operationId":"listTransactions","parameters":{},"options":{},"environments":{}},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The filters:"]},{"$$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":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Notes"},"children":["Notes"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Page size, default 100"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offset"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Records to skip, default 0"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created.gte"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created.lte"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ISO 8601, UTC, inclusive"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["result"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["APPROVED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DECLINED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ERROR"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Comma-separated list, case-insensitive. Read the caveats below"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["card_type"]}]},{"$$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"]},". Comma-separated list"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["integration"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TSYS"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VERICHECK"]}," — uppercase here"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["For a reseller reading one merchant"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["batch_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Everything in one batch"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_settled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Boolean"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_by"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TYPE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RESULT"]},". Default ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATED"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ASC"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DESC"]},". Default ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DESC"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"three-filters-that-will-mislead-you","__idx":3},"children":["Three filters that will mislead you"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," is not proof a filter worked."]}," These three are worth knowing before you"," ","build a reconciliation process on them."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type=PAYOUT"]}," is accepted and then ignored."]}," You get an unfiltered list with"," ","a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]},", not an error. Filter payouts out in your own code."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type=VOID"]}," returns a server error."]}," A voided payment is reported as"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CANCEL"]},". Filter on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CANCEL"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["card_type"]}," is usually ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNKNOWN"]},"."]}," Filtering on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREDIT"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEBIT"]}," alone"," ","quietly drops most rows. Include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNKNOWN"]}," unless you specifically want the"," ","determined ones: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["card_type=CREDIT,DEBIT,UNKNOWN"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The valid ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}," values are the response vocabulary, not the create one:"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SALE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AUTH"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INCREMENTAL_AUTH"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAYOUT"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REFUND"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CANCEL"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAPTURE"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"paging","__idx":4},"children":["Paging"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response wraps the results:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"total_count\": 42,\n  \"limit\": 100,\n  \"offset\": 20,\n  \"has_more\": true,\n  \"transactions\": [ ... ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Page by incrementing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offset"]}," by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limit"]}," while ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["has_more"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Offset paging shifts when new transactions arrive mid-walk, and the default sort"," ","is newest first, so a long-running export can see a row twice or miss one."," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pin the window with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created.lte"]}]}," before you start paging, and the set stops"," ","moving under you."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"finding-ach-returns","__idx":5},"children":["Finding ACH returns"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A return arrives days after approval and nothing tells you. Poll for it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Query the window you care about and check ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_returned"]}," on each transaction."," ","Remember that ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["return_code"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["return_reason"]}," are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["omitted rather than null"]}," ","when there has been no return, so read them defensively."]},{"$$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/batch-reports"},"children":["Batch reports"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/after-the-payment/transaction-lifecycle"},"children":["Transaction lifecycle"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/payments/accept-an-ach-payment"},"children":["Accept an ACH payment"]}]}]}]},"headings":[{"value":"Find and report on transactions","id":"find-and-report-on-transactions","depth":1},{"value":"Read one transaction","id":"read-one-transaction","depth":2},{"value":"Search transactions","id":"search-transactions","depth":2},{"value":"Three filters that will mislead you","id":"three-filters-that-will-mislead-you","depth":2},{"value":"Paging","id":"paging","depth":2},{"value":"Finding ACH returns","id":"finding-ach-returns","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"title":"Find and report on transactions","shortTitle":"Find transactions","intro":"Read one transaction back, or search the whole set. Covers the filters, pagination, and the three that do not behave the way they read.","type":"how-to","seo":{"title":""}},"lastModified":"2026-09-17T09:08:13.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/after-the-payment/find-and-report-on-transactions","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}