# Mock Data Warehouse (DWH) source: https://developer.mastercard.com/india-online-dispute-resolution/documentation/mock-data-warehouse/index.md ## Mock Data Warehouse (DWH) API {#mock-data-warehouse-dwh-api} This documentation outlines the behavior and structure of the Mock Data Warehouse (DWH) API in the Sandbox environment for B2B integrations. It is designed to simulate real-world transaction data retrieval and status validation workflows for complaint resolution and testing. ### Request Flow {#request-flow} API consumers initiate a request to fetch transaction details using complaint identifiers. The initial response always returns a status of `PENDING`, indicating that the data retrieval process has started. ### Asynchronous Status Update {#asynchronous-status-update} A background process updates the transaction status asynchronously. Consumers must use the **Transaction Status API** to poll for the latest status. ### Mock Data Behavior {#mock-data-behavior} The sandbox randomly returns **success** or **failure** scenarios to simulate real-world variability. This helps developers test **error handling** and **retry logic** effectively. ## Transaction Details API {#transaction-details-api} The Transaction Details API retrieves transaction data from the DWH for a given complaint. This API is designed to support complaint resolution workflows by providing structured access to transaction records. **Endpoint**: /transactions/details **Behavior** * Initial status: Always return PENDING upon request. * Mock data: Simulates both success and failure scenarios randomly. * Background processing: An asynchronous process fetches actual data from the DWH. * Status monitoring: Use the Transaction Status API to check for updates. **Request payload (encrypted)** ```java { "retrievalReferenceNumber": "435465768997", "banknetReferenceNumber": "400000000", "approvalCode": "00231W", "acquirerICA": "00000023910", "trackingNumber": "X0NNECBZBU3U" } ``` **Response payload (encrypted)** ```java { "status": "PENDING", "description": "Transaction status validation still in progress", "transactionStatus": null, "banknetReferenceNumber": null, "acquirerName": null } ``` ## Transaction Status API {#transaction-status-api} The Transaction Status API provides the current status of a transaction data retrieval request initiated through the Transaction Details API. **Endpoint**: /transactions/status **Request payload** ```java tracking_number=X0NNECBZBU3U ``` **Response payload - success** You must decrypt the response to access the transaction status. ```java { "status": "COMPLETED", "description": "Transaction status validation is completed.", "transactionStatus": "Only Authorization found.", "banknetReferenceNumber": "400000000", "acquirerName": "IODR API ACQ" } { "status": "COMPLETED", "description": "Transaction status validation is completed.", "transactionStatus": "Authorization with Reversal found.", "banknetReferenceNumber": "400000000", "acquirerName": "IODR API ACQ" } { "status": "COMPLETED", "description": "Transaction status validation is completed.", "transactionStatus": "Authorization and Clearing found.", "banknetReferenceNumber": "400000000", "acquirerName": "IODR API ACQ" } ``` **Response - payload failure** ```java { "status": "FAILED", "description": "Transaction status call failed due to No matching record identified.", "transactionStatus": null, "banknetReferenceNumber": null, "acquirerName": null } { "status": "FAILED", "description": "Transaction status call failed due to multiple matching record identified.", "transactionStatus": null, "banknetReferenceNumber": null, "acquirerName": null } ``` ## Update User Complaint API {#update-user-complaint-api} The Update User Complaint API modifies complaint details using the complaint tracking number. When a dispute is routed by the issuer to the acquirer queue, the dispute status is randomly updated by a scheduler. By the next day (IST 11:55 PM), the dispute is automatically returned to the issuer queue. **Endpoint**: /complaints **Request payload** ```java { "trackingNumber":"ARDBVFMEQEQV", "complaintStatus":"SENT_TO_ACQUIRER", "comments":"ARDBVFMEQEQV-test update API comment SENT_TO_ACQUIRER" } ``` **Response payload** ```Java { "trackingNumber": "ARDBVFMEQEQV", "description": "Complaint updated successfully." } ```