3 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

ReceiptType

ReceiptType works with MarketplaceService:BindReceiptHandler() to indicate the different type of receipts a developer can bind to for processing. When you call BindReceiptHandler, you pass a ReceiptType to specify which kind of receipt your handler should process.

DeveloperProduct is used for developer product purchases and provides a BindReceiptHandler-based alternative to the legacy ProcessReceipt callback. RobuxTransferSender and RobuxTransferReceiver are used for Robux transfers, described below.

For Robux transfers initiated with PromptRobuxTransferAsync, two receipts are generated: one for the sender (RobuxTransferSender) and one for the receiver (RobuxTransferReceiver). You should register handlers for both types to fully process a transfer.

Transfer receipts are delivered to whichever server the user is currently in once the transfer settles (the user does not need to rejoin). If the user is offline when the transfer settles, the receipt is delivered the next time they join a server. See BindReceiptHandler for details.

Items

NameValueDescription
DeveloperProduct0Used for processing receipts from developer product purchases made with PromptProductPurchase. The receipt includes ProductId, CurrencyType, and CurrencySpent fields. A handler bound for this type processes developer product receipts in place of the legacy ProcessReceipt callback; receipts with no matching bound handler fall through to ProcessReceipt.
RobuxTransferSender1Used for processing receipts for the user who initiated a Robux transfer. The receipt's PlayerId is the sender's user ID and includes a TransferRequestId field. Delivered immediately if the transfer settles synchronously. If receiver approval is required, delivered to the server the sender is currently in once the receiver accepts, or on the sender's next session join if they are offline.
RobuxTransferReceiver2Used for processing receipts for the user who received Robux via a transfer. The receipt's PlayerId is the receiver's user ID and includes a TransferRequestId field. Delivered to the server the receiver is currently in once the transfer settles, or on their next session join if they are offline.

DeveloperProduct

Used for processing receipts from developer product purchases made with PromptProductPurchase. The receipt includes ProductId, CurrencyType, and CurrencySpent fields. A handler bound for this type processes developer product receipts in place of the legacy ProcessReceipt callback; receipts with no matching bound handler fall through to ProcessReceipt.

FieldValue
value0

RobuxTransferSender

Used for processing receipts for the user who initiated a Robux transfer. The receipt's PlayerId is the sender's user ID and includes a TransferRequestId field. Delivered immediately if the transfer settles synchronously. If receiver approval is required, delivered to the server the sender is currently in once the receiver accepts, or on the sender's next session join if they are offline.

FieldValue
value1

RobuxTransferReceiver

Used for processing receipts for the user who received Robux via a transfer. The receipt's PlayerId is the receiver's user ID and includes a TransferRequestId field. Delivered to the server the receiver is currently in once the transfer settles, or on their next session join if they are offline.

FieldValue
value2