Instore Manual Review Endpoint

Overview

This API endpoint is dedicated to handling the manual review process for members who have submitted receipts and believe certain offers should be awarded post-rejection. It provides a mechanism for members to flag specific rejected offers for further review by customer service (CS) teams, potentially leading to offer approval.

HTTP Request

curl \
-X POST https://receipts.bitlabs.ai/?cmd=mp-mr-api-manual-review&uploadOfferIDs=123 \
-H "Authorization: Bearer <token>"

Request Parameters

NameTypeDescription
uploadOfferIdsarrayAn array of IDs representing the offers that the member requests to be reviewed manually.

Response

The response will include a status code and may also return an array of uploadOfferIds that have been successfully submitted for manual review.

Example Request

POST https://receipts.bitlabs.ai/?cmd=mp-mr-api-manual-review&uploadOfferIDs=69581%2C69582

Example Response

{  
   "manualReview":\[  
      151012867,  
      151012868,  
      151012869,  
      151012870  
   \],  
   "status":200  
}

Sample Manual Review Request Display:

Immediately after the upload a user gets a display with the offer they chose to upload for showing that they weren’t awarded for them, and the choice to click Contact Customer Support, which brings you to the next screen.

image-20240209-202711.png

The user now can choose which offers they think they should have been awarded for, i.e. that they should be manually reviewed.

image-20240209-202742.png

Then when the user clicks Send For Review is when we make the API call above using the uploadOfferIDs of these selected offers (these ids are passed back after the receipt upload call).

image-20240209-202759.png

Then we display a message conveying that their review request has been received, or an error request if it wasn’t received.

  • If upload offer IDs were sent back, that means it was received
  • If no upload offer IDs were sent back, then the request didn’t work
  • If an error message (noted above) was sent back then either they requested too many offers (the limit is 10), or an error happened deserializing the JSON.
image-20240209-202822.png

Processing Logic

Upon submission, the endpoint performs the following actions:

  1. Validates the eligibility of the upload offers for manual review based on certain rejection statuses and the offer's manual review eligibility.
  2. Changes the status of eligible upload offers to PENDING_MANUAL_REVIEW_USER_REQUESTED.
  3. Allows CS teams to subsequently approve or reject the offers in the admin panel.

Error Handling

  • If the request fails, an error status code and message will be provided.
    • {"status": 400, "message", "error"}
  • Common errors include:
    • invalid offer IDs
    • offers that are not eligible for manual review.
    • Only a configurable amount of manual review submissions are allowed per upload, if it exceeds this number the error response is returned

Best Practices

It is recommended to handle the response gracefully in the UI, providing users with clear feedback on the submission's success or failure.