MarketplaceService ProcessReceipt callback

I’m looking for some information about the ProcessReceipt callback that’s assosiated with the MarketplaceService.

I understand that we are supposed to return a ProductPurchaseDecision enum in this function, but there are a number of details here I’m unclear about.

I don’t have any questions about returning PurchaseGranted. That makes sense to me, I should only return it when the product has been granted in game successfully.

I do however have questions about NotProcessedYet. I have found posts such as this one that state that returning this enum suspends the transaction for a number of days only to attempt again if the player leaves and rejoins the game in that suspended period. If that’s true I can’t seem to find it documented anywhere officially?

If the above is true, then is there a way to fail a transaction without initiating a retry? It’s extra work for me to design a system that may have a reciept come in during a session that wasn’t actually prompted by the player.

Finally, what happens if I return nil in this callback? Is that the same as the NotProcessedYet enum, or what happens?

Any help (with supporting links to official sources) would be greatly appreciated!

4 Likes

Yes

It will also retry any failed purchases when a new purchase has been made in the same session

No, sadly we do not have this option after asking Roblox for years :smiling_face_with_tear:

Yes


You can test these behavior in studio or in game with a 1R$ Dev product to be sure.

There isn’t any new documentation on this whatsoever

Last time I check was a few years back we didn’t have any documentation, but it seems like some has been added

4 Likes

Is this documented anywhere? It seems like this is all just word of mouth?

I could verify this (and will), but I think it’s a bit crazy that this isn’t written down somewhere?

Edit: answered me w/ an edit

3 Likes

Very vague…

(I’ll look for more I remember there are some small traces of information)

https://developer.roblox.com/en-us/api-reference/callback/MarketplaceService/ProcessReceipt

There is a timeout period when the purchase expires and Robux is returned to the player, I think it’s 3 days.


I had the same question in 2018 @EgoMoose I hope you find something useful from here

2 Likes