Magic Receipt callbacks
This page describes on how to utilize callbacks for different magic receipt states.
What is a Magic Receipt callback?
A magic receipt callback is a specific callback only sent for magic receipt state changes (also called stateful magic receipt callbacks). The magic receipt callbacks work differently from the general reward callbacks since you will receive all the different states of a receipt and additional information about the receipt.
How to set up Magic Receipts callbacks
To set up the magic receipt stateful callbacks, visit the Publisher Dashboard -> Apps -> Your App -> Integration -> Magic Receipts Callback:
IMPORTANT: You can enable the stateful magic receipts callbacks which have the following effects:
- Magic receipt callbacks for all states will be sent now (Before only
COMPLETED
would be sent) - The transaction ID for each state change will be the same
- The
TYPE
parameter will return the typestate_change
- It is recommended not to use
TYPE
for magic receipts.
- It is recommended not to use
To configure a new URL, press the cog wheel to open the callback URL configurator:
Multiple fields have to be filled out:
- Callback URL Host: Enter the callback endpoint URL you have set up.
- Protocol: In most cases, you want to leave it as is.
- Callback Parameter: Here you can add all the parameters you need to process the callbacks correctly. We highly recommend that you have the following parameters in there:
UID
,TX
,VAL
, andRAW
.- For magic receipts, we also recommend to add the
magic_receipt_state
parameter.magic_receipt_state
will return the state of a receipt:PENDING
,REVIEWING
,RECONCILED
,COMPLETED
. Learn more about the magic receipt states here.
- For magic receipts, we also recommend to add the
- Custom Parameter: In case you want to attach a parameter yourself, you can add it here. However, it does only support static parameters.
- Example URL: This shows you an example callback URL that you would receive. Keep in mind the hash in the example is not a valid one!
Here is an example of how a callback URL could be configured:
Press the Save button and then the Save Changes button in the top right.
Magic Receipt states
Each offer callback will have a different state. The following states are available:
COMPLETED
: The COMPLETED
callback will be sent when a receipt is approved. This is the only final state and can not change.
PENDING
: A PENDING
callback will be sent when a reward for a magic receipt is pending. After a PENDING
callback was sent, a COMPLETED
or RECONCILED
can follow.
REVIEWING
: A REVIEWING
callback will be sent when a receipt goes into manual review. A support person takes a look at the receipt. After a REVIEWING
callback was sent, a COMPLETED
or RECONCILED
can follow. REVIEWING
can only occur once after a RECONCILIED
was fired. A specific receipt submission can only be once in REVIEWING
.
RECONCILED
: A RECONCILED
callback will be sent when a magic receipt is rejected. You can use the reason and reason ID macros to learn more about the rejection. A RECONCILED
state is never final and can change to a COMPLETED
or REVIEWING
.
Make sure to only reward users for magic_receipt_state=COMPLETED callbacks!
Magic Receipt parameters
For magic receipts we do provide additional parameters for additional information:
Parameter | Type | Description |
---|---|---|
[%MAGIC_RECEIPT_STATE%] | String | It can only be used when using Stateful Magic Receipts Callbacks. One of: COMPLETED , PENDING , RECONCILED , REVIEWING |
[%RECEIPT:OFFER:ID%] | Integer | Returns the offer ID |
[%RECEIPT:OFFER:NAME%] | String | Returns the offer name |
[%RECEIPT:UPLOAD:ID%] | Integer | Returns an ID that is associated to an upload |
[%RECEIPT:UPLOAD:OFFER:ID%] | Integer | Returns the offer ID |
[%MAGIC_RECEIPT_REASON%] | String | Returns the reason why a receipt got rejected or approved. |
[%MAGIC_RECEIPT_REASON_ID%] | Integer | Returns the id of the reason. |
For a full list of all parameters click here. For more information on the magic receipt reasons, click here.
How to test Magic Receipt callbacks
We offer a callback tester on the dashboard to test your configured callback endpoints. Learn more about it here.

Legacy way of testing
The following part of the documentation explains how callbacks were tested before the callback tester on the dashboard existed. We highly recommend not using the following method anymore!
You can simulate a callback by following these steps:
- Set up the magic receipts callback
- Copy the URL in the configuration modal at the bottom
- Replace the hash in the URL with the real hash according to this page
- Replace the reward amount, state and user ID with the correct ones
- Open the URL in the web browser
This will send you a callback with which you can test your system.
Magic Receipt Reasons and Reason IDs
In the following table you can see all the different reason IDs and descriptions.
statusID | Status | Description | User Facing Description |
---|---|---|---|
1 | Pending Review | Pending automated review | The receipt is pending and waiting to get reviewed. |
2 | Rejected | Error parsing receipt - manual reviews disabled | |
3 | Rejected | Receipt is duplicate - different member | It looks like your receipts was already in our system. Please make sure to now upload duplicate receipts. |
4 | Rejected | Offer no longer available | Sorry, but this offer is no longer available. |
5 | Rejected | Offer not added to member list | Your receipt was rejected, because the offer is not in your cart. |
6 | Rejected | Unable to parse receipt merchant (legacy) | |
7 | Rejected | Unrecognized receipt merchant | We were unable to identify the merchant on the receipt. |
8 | Rejected | Selected merchantID and receipt merchant mismatch (legacy) | |
9 | Rejected | Offer purchased at incorrect merchant | The offer is not available for the selected merchant. Please make sure to purchase an item at the correct merchant. |
10 | Rejected | Unable to parse receipt date | Your receipt was rejected. We were unable to identify the receipt date. |
11 | Rejected | Receipt date before offer start date | Your receipt was rejected because the purchase was made before the offer went live. |
12 | Rejected | Receipt date after offer end date | Sorry, but this offer is no longer available. |
13 | Rejected | Member already completed offer max number of times | You reached the maximum amount of rewards you can get for this offer. |
14 | Rejected | No matching line items found | Sorry, we weren't able to find any matching items on your receipt. |
15 | Rejected | Insufficient quantity available for offer | Your receipt was rejected due to the offer not being available anymore. |
16 | Rejected | Partner rejected completion | Your receipt was rejected because of various reasons. If you think it should have not been rejected, please send it in for a manual review. |
17 | Approved | Awarded | Your receipt was approved. |
18 | Rejected | Internal error | An internal error occurred. Please try again. |
19 | Rejected | No goals found | |
20 | Rejected | All goals capped | |
21 | Rejected | Offer already in manual review | This receipt is already in manual review. |
22 | Rejected | An error occurred. Rolling back award | An internal error occurred. Please try again. |
23 | Pending Review | Pending manual review - manual offer | Your receipt is under manual review. |
24 | Pending Review | Under manual review | Your receipt is under manual review. |
25 | Approved | Awarded manually | Your receipt was approved. |
26 | Rejected | Incomplete receipt | Your receipt is incomplete. Please upload a new image of the receipt. |
27 | Rejected | Duplicate receipt - manual review | It looks like your receipts was already in our system. Please make sure to now upload duplicate receipts (manually reviewed). |
28 | Pending Review | User requested manual review pending | Your receipt is currently in the manual review process. |
29 | Rejected | Offer purchased at incorrect state (legacy) | |
30 | Pending Review | Duplicate receipt from same user. Forced into manual review | It looks like your receipts was already in our system, however, our team will have a second look at it. |
31 | Rejected | Fraud | Your receipt was not accepted by our system. Please review it and resubmit a different image. |
32 | Pending Review | Member previously uploaded fraud reciept - Forced manual review | Your receipt was not accepted by our system. Our team will review it. |
33 | Pending Review | Rate limiter prevented : Successfully uploaded x receipts | |
34 | Pending Review | Rate limiter prevented : Redeemed X awards | |
35 | Pending Review | Rate limiter prevented : Earned X dollars | |
36 | Pending Review | Awaiting E-Receipt Email | |
37 | Rejected | Matching E-Receipt Email Not Found | |
39 | Rejected | Duplicate Any receipt | It looks like your receipts was already in our system. Please make sure to now upload duplicate receipts. |
40 | Approved | Admin Courtesy Award | Your receipt was approved. |
41 | Rejected | Receipt Date Out Of Range | Your receipt date is outside the offers date ranges. Please read the disclaimer of the offer. |
42 | Approved | First time courtesy award | Your receipt was approved. |
43 | Rejected | Offer purchased at incorrect medium | |
44 | |||
45 | |||
46 | |||
47 | |||
48 | Rejected | Receipt Is A Screen | It looks like the receipt image is taken from a screen. Please take a photo of the real receipt. |
49 | |||
50 | |||
51 | |||
52 | |||
53 | |||
54 | |||
55 | Rejected | Rekognition Fraud | Your receipt was not accepted by our system. Please review it and resubmit a different image. |
56 | Award Pending | Automated approved, award pending | Your receipt was approved. Your reward will be granted soon. |
57 | Approved | Award credited after pending period | Your receipt was approved. |
58 | Approved | Manually credited pending award | Your receipt was approved. Your reward will be granted soon. |
59 | Rejected | Bulk Transition - Rejected | |
60 | Approved | Bulk Transition - Standard Award | Your receipt was approved. |
61 | Approved | Bulk Transition - Courtesty Award | Your receipt was approved. |
62 | Pending Review | Rekognition Possible Fraud | Your receipt was not accepted by our system. Please review it and resubmit a different image. |
63 | Pending Review | Rekognition Certain Fraud - Pending Manual Review | Your receipt was not accepted by our system. Our team will review it. |
64 | Rejected | Duplicate Receipt Same Offer Awarded | It looks like your receipts was already in our system, however, our team will have a second look at it. |
65 | Rejected | Receipt Contains Banned Phrases | |
66 | Rejected | Any Receipt Already Used | You already used up this offer for now. Please look at the offer disclaimer for more information. |
67 | Rejected | All Line Items Are For Curbside Pickup | |
68 | Rejected | Offer already Pending | The receipt offer is already pending. |
69 | Award Pending | Rate Limiter Pending: Successfully uploaded x receipts | |
70 | Award Pending | Rate Limiter Pending: Redeemed X awards | |
71 | Award Pending | Rate Limiter Pending: Earned X dollars | |
72 | Rejected | All Line Items Have Incorrect Order Status | |
73 | Rejected | REKOGNITION_FRAUD_MANUAL_REVIEW_DISABLED | |
74 | Rejected | RATE_LIMITER_AWARD_PENDING_DISABLED | |
75 | Pending Review | QUOTIENT_PENDING_UPLOAD | Our team will review the uploaded receipt shortly. |
76 | Pending Review | QUOTIENT_PENDING_REVIEW | Our team will review the uploaded receipt shortly. |
77 | Rejected | QUOTIENT_FAILED_UPLOAD | The upload failed. Please try uploading the receipt again. |
78 | Rejected | QUOTIENT_REJECTED | Your receipt was rejected. Please make sure to add the offer to your list and then submit the receipt. |
79 | Rejected | QUOTIENT_DUPLICATE_RECEIPT | It looks like your receipts was already in our system. Please make sure to now upload duplicate receipts. |
80 | Award Pending | QUOTIENT_APPROVED_AWARD_PENDING | Your receipt was approved. Your reward will be granted soon. |
81 | Rejected | QUOTIENT_APPROVED_ERROR_AWARDING | On further review, your receipt was rejected. No further information available. |
82 | Rejected | QUOTIENT_EXPIRE_OLD_UPLOADS | Your receipt was rejected, due to an expired offer. |
83 | Rejected | QUOTIENT_RECEIPT_DATE_BEFORE_ACTIVATION | Your receupt was rejected. The purchase date is before the offer was available. |
84 | Rejected | QUOTIENT_NO_TRANSACTION_ID | Your receipt was rejected, due to an error. Please try again. |
85 | Pending Review | Pending Manual Review - Admin Requested | Your receipt is currently under review. |
86 | Rejected | Image Size Inadequate - Possible Fraud | Your receipt was not accepted by our system. Please review it and resubmit a different image. |
87 | Pending Review | QUOTIENT_MANUAL_REVIEW | Your receipt is currently under review. |
88 | Rejected | QUOTIENT_MANUAL_REVIEW_REJECTED | Your receipt was not accepted by our system. Please review it and resubmit a different image. |
89 | Rejected | QUOTIENT_MANUAL_REVIEW_ALREADY_REVIEWED | Your receipt was not accepted by our system. Please review it and resubmit a different image. |
90 | Rejected | QUOTIENT_MANUAL_REVIEW_INSUFFICIENT_QUANTITY | Your receipt was rejected due to insufficient quantity of the item. Please read the offer disclaimer for more information. |
91 | Approved | QUOTIENT_MANUAL_REVIEW_APPROVED | Your receipt was approved. |
92 | Rejected | QUOTIENT_MANUAL_REVIEW_FRAUD | Your receipt was not accepted by our system. Please review the image and resubmit a different image. |
93 | Approved | QUOTIENT_APPROVED_AUTOMATED | Your receipt was approved. |
94 | Pending Review | Quantity mismatch - manual review | Your receipt is currently under review. |
95 | Award Pending | Barcode Scan Award | Your receipt was approved. Your reward will be granted soon. |
96 | Approved | Overrode Expired Upload | Your receipt was approved. |
97 | Pending Review | Auto Manual Review | Your receipt is currently under review. |
98 | Award Pending | All Line Items Are For Curbside Pickup Allowed | Your receipt was approved and your reward will be granted soon. |
99 | Rejected | Bad Barcode | Your receipt was rejected due to a bad barcode. Please review it and resubmit a different image. |
100 | Pending Review | Secondary Manual Review | Your receipt is currently under review. |
101 | Pending Review | Error Parsing Receipt Retry Upload | Your receipt is currently under review. |
102 | Rejected | Error Parsing Receipt Retry Failed | Your receipt was rejected due to an error. Please try again with a different image. |
103 | Pending Review | Secondary Manual Review From Approval | Your receipt is currently under review. |
104 | Pending Review | QUOTIENT_SECONDARY_MANUAL_REVIEW | Your receipt is currently under review. |
105 | Approved | QUOTIENT_APPROVED_SECONDARY_MANUAL_REVIEW | Your receipt was approved. |
106 | |||
107 | Pending Review | Receipt is Digital | Your receipt is currently manual under review. |
108 | Pending Review | Receipt image size is too small | Your receipt is currently manual under review. |
109 | Pending Review | Receipt is Fraudulent | Your receipt is currently under manual review. |
110 | Rejected | EXPIRE_OLD_UPLOADS | Your receipt was rejected. |
111 | Pending Review | Image was flagged as not a receipt image | Your receipt is currently under manual review. |
112 | Pending Review | Quotient Rekognition Possible Fraud | Your receipt is currently under manual review. |
113 | Pending Review | Quotient Rekognition Certain Fraud | Your receipt is currently under manual review. |
114 | Rejected | Quotient Rekognition Fraud | Your receipt was flagged by the system and will be submitted to the manual review queue. |
Updated 28 days ago