Skip to main content

ReceiptProcessed Payload Samples

These are the JSON payloads a client will receive for all supported variations of the ReceiptProcessed webhook. The blink_receipt_id appears both at the top level (for easy correlation) and inside payload_data.


1. Scan (complete)

Triggered when a new receipt is successfully scanned and processed.

{
"id": "051748df-36f2-4a70-ac67-0d00faf1b84f",
"timestamp": 1776744008355,
"payload_data": {
"receipt_metadata": {
"receipt_type": "paper",
"global_receipt_id": "GR-20240315-8842910",
"blink_receipt_id": "f3a91c2d-7b4e-4f88-bc13-9e0d5a72c441",
"original_blink_receipt_id": null,
"email_metadata": {
"email_timestamp": null,
"email_id": null,
"email_client": null,
"email_sender": null,
"email_subject": null
},
"parse_metadata": {
"parse_method": "ocr_parser",
"parse_timestamp": "2024-03-15T14:23:07Z",
"country_code": "US",
"parser_version": "4.11.2"
},
"flags": {
"is_receipt": true,
"is_instacart_shopper": false,
"fraud_detected": false,
"fraud_reason": null,
"is_duplicate": false,
"duplicate_blink_receipt_ids": []
},
"client_user_id": null,
"version": "2.3.0"
},
"merchant": {
"name": "Whole Foods Market",
"client_name": "whole_foods",
"sub_merchant": null,
"mall_name": null,
"tax_id": "04-3234660",
"channel": "grocery",
"location": {
"address": "1765 California St",
"city": "San Francisco",
"state": "CA",
"zip_code": "94109",
"store_phone_number": "(415) 674-0500",
"store_number": 10294
}
},
"payment": {
"method": "credit_card",
"card_type": "Visa",
"card_issuer": "Chase",
"last_4_digits": "4821",
"terminal_id": "TRM-07",
"cashback": "0"
},
"charges": {
"totals": {
"subtotal": 47.93,
"discount_total": 3.5,
"rounding_adjustment": 0,
"total": 46.56,
"taxes": 2.13,
"fees": 0.1,
"tip": 0
},
"fees": [
{
"type": "bag_fee",
"description": "BAG FEE",
"amount": 0.1,
"scope": "order"
}
],
"currency_code": "USD"
},
"purchase": {
"order_number": "WF-20240315-00447",
"status": "completed",
"purchase_date": "2024-03-15 00:00:00",
"purchase_time": "14:11:03",
"transaction_id": "881920347",
"long_transaction_id": "WF-CA-10294-20240315-881920347",
"cashier_id": "C-0428",
"register_id": "3",
"loyalty_number": "WFM-7734829103",
"purchase_time_string": "2:11 PM",
"purchase_time_hh_mm": "14:11",
"loyalty_program": true,
"unqualified_promotions": [
"PROMO-WF-BAKERY10"
],
"qualified_promotions": [
"PROMO-WF-SPRING24-DAIRY"
],
"type": "in-store"
},
"products": [
{
"name": "ORGANIC WHOLE MILK 1GAL",
"number": "0002201550000",
"name_normalized": "Organic Valley Whole Milk",
"quantity": 1,
"unit_price": 5.99,
"regular_price": 7.99,
"purchased_price": 5.99,
"purchase_status": "completed",
"is_sensitive": false,
"qualified_promotions": [
"PROMO-WF-SPRING24-DAIRY"
],
"category": "Dairy",
"size": "1 gal",
"brand": "Organic Valley",
"upc": "093966000052",
"subproducts": []
},
{
"name": "MULTIGRAIN BREAD",
"number": "0004963100891",
"name_normalized": "Dave's Killer Bread 21 Whole Grains",
"quantity": 1,
"unit_price": 5.49,
"regular_price": 5.49,
"purchased_price": 5.49,
"purchase_status": "completed",
"is_sensitive": false,
"qualified_promotions": null,
"category": "Bakery",
"size": "27 oz",
"brand": "Dave's Killer Bread",
"upc": "013764010012",
"subproducts": []
},
{
"name": "ORG BABY SPINACH 5OZ",
"number": "0003338813401",
"name_normalized": "365 Organic Baby Spinach",
"quantity": 2,
"unit_price": 3.99,
"regular_price": 3.99,
"purchased_price": 3.99,
"purchase_status": "completed",
"is_sensitive": false,
"qualified_promotions": null,
"category": "Produce",
"size": "5 oz",
"brand": "365 by Whole Foods Market",
"upc": "099482443016",
"subproducts": []
},
{
"name": "FREE RANGE EGGS LG DZ",
"number": "0002244700218",
"name_normalized": "Vital Farms Pasture-Raised Eggs Large",
"quantity": 1,
"unit_price": 7.49,
"regular_price": 8.99,
"purchased_price": 7.49,
"purchase_status": "completed",
"is_sensitive": false,
"qualified_promotions": [
"PROMO-WF-SPRING24-DAIRY"
],
"category": "Dairy & Eggs",
"size": "12 ct",
"brand": "Vital Farms",
"upc": "855105003021",
"subproducts": []
},
{
"name": "COLD BREW COFFEE 32OZ",
"number": "0006724892110",
"name_normalized": "Chameleon Organic Cold Brew Coffee",
"quantity": 1,
"unit_price": 9.49,
"regular_price": 9.49,
"purchased_price": 9.49,
"purchase_status": "completed",
"is_sensitive": false,
"qualified_promotions": null,
"category": "Beverages",
"size": "32 fl oz",
"brand": "Chameleon",
"upc": "857810004078",
"subproducts": []
}
],
"discounts": [
{
"type": "loyalty_discount",
"description": "PRIME MEMBER DAIRY DEAL",
"amount": 2,
"scope": "item",
"product_ids": [
0
]
},
{
"type": "loyalty_discount",
"description": "PRIME MEMBER EGG SAVINGS",
"amount": 1.5,
"scope": "item",
"product_ids": [
3
]
}
]
},
"payload_type": "ReceiptProcessed",
"version": 1
}

Field Reference

FieldTypeDescription
versionnumberTop-level payload schema version.
idstring (UUID)Unique ID for this webhook delivery.
timestampnumberUnix timestamp in milliseconds.
payload_typestringPayload event type. Always "ReceiptProcessed"
payload_dataobjectContainer for the webhook payload data.
receipt_metadata
payload_data.receipt_metadataobjectReceipt-level metadata.
payload_data.receipt_metadata.receipt_typestringType of receipt format (e.g., digital, paper).
payload_data.receipt_metadata.global_receipt_idstringGlobal unique identifier for the receipt.
payload_data.receipt_metadata.blink_receipt_idstringUUID — Primary Blink Receipt ID.
payload_data.receipt_metadata.original_blink_receipt_idstringOriginal Blink Receipt ID if duplicated.
receipt_metadata.email_metadata
payload_data.receipt_metadata.email_metadataobjectEmail metadata for digital receipt ingestion.
payload_data.receipt_metadata.email_metadata.email_timestampstringTimestamp email was received.
payload_data.receipt_metadata.email_metadata.email_idstringEmail unique ID.
payload_data.receipt_metadata.email_metadata.email_clientstringEmail client used to send the message.
payload_data.receipt_metadata.email_metadata.email_senderstringEmail sender address.
payload_data.receipt_metadata.email_metadata.email_subjectstringEmail subject line.
receipt_metadata.parse_metadata
payload_data.receipt_metadata.parse_metadataobjectReceipt parsing metadata.
payload_data.receipt_metadata.parse_metadata.parse_methodstringHow the receipt was parsed.
payload_data.receipt_metadata.parse_metadata.parse_timestampstringTimestamp when the receipt was parsed.
payload_data.receipt_metadata.parse_metadata.country_codestringCountry code (e.g., US).
payload_data.receipt_metadata.parse_metadata.parser_versionstringInternal version of the parser used.
receipt_metadata.flags
payload_data.receipt_metadata.flagsobjectClassification and fraud/duplicate flags.
payload_data.receipt_metadata.flags.is_receiptbooleanWhether this was successfully classified as a receipt.
payload_data.receipt_metadata.flags.is_instacart_shopperbooleanFlag indicating if an Instacart shopper submitted the receipt.
payload_data.receipt_metadata.flags.fraud_detectedbooleanFlag for internal fraud detection.
payload_data.receipt_metadata.flags.fraud_reasonstringOptional reason for fraud flag.
payload_data.receipt_metadata.flags.is_duplicatebooleanFlag to indicate if this is a duplicate receipt.
payload_data.receipt_metadata.flags.duplicate_blink_receipt_idsstring[]Array of UUIDs for duplicate receipts.
payload_data.receipt_metadata.client_user_idstringThe client-specific user identifier, if provided during registration. Omitted when not set.
payload_data.receipt_metadata.versionstringAPI response schema version used for this payload.
merchant
payload_data.merchantobjectMerchant information.
payload_data.merchant.namestringMerchant or store name.
payload_data.merchant.client_namestringNormalized merchant name used by client.
payload_data.merchant.sub_merchantstringIn case of delivery platforms (e.g., DoorDash > Chipotle).
payload_data.merchant.mall_namestringIf inside a mall, the name of mall.
payload_data.merchant.tax_idstringTaxpayer ID of the merchant.
payload_data.merchant.channelstringMerchant channel (grocery, mass, qsr, etc.).
merchant.location
payload_data.merchant.locationobjectMerchant location details.
payload_data.merchant.location.addressstringStreet address of the store.
payload_data.merchant.location.citystringCity where the store is located.
payload_data.merchant.location.statestringState where the store is located.
payload_data.merchant.location.zip_codestringZIP or postal code.
payload_data.merchant.location.store_phone_numberstringMerchant's store location phone number.
payload_data.merchant.location.store_numbernumberStore number or ID.
payment
payload_data.paymentobjectPayment information.
payload_data.payment.methodstringMethod of payment (e.g., credit_card, cash).
payload_data.payment.card_typestringType of card used (e.g., Visa, MasterCard).
payload_data.payment.card_issuerstringIssuer of the payment card.
payload_data.payment.last_4_digitsstringLast 4 digits of the card.
payload_data.payment.terminal_idstringTerminal ID (if available).
payload_data.payment.cashbackstringCashback earned or redeemed.
charges
payload_data.chargesobjectCharge and currency information.
payload_data.charges.totalsobjectAggregated totals for the transaction.
payload_data.charges.totals.subtotalnumberSubtotal amount before tax and discounts.
payload_data.charges.totals.discount_totalnumberTotal discount amount.
payload_data.charges.totals.rounding_adjustmentnumberRounding adjustment amount if applicable.
payload_data.charges.totals.totalnumberTotal amount charged.
payload_data.charges.totals.taxesnumberTotal taxes applied to purchase.
payload_data.charges.totals.feesnumberTotal fees applied to purchase.
payload_data.charges.totals.tipnumberTip amount.
payload_data.charges.feesobject[]Fee line items.
payload_data.charges.fees[].typestringType of fee (e.g., bag_fee, delivery_fee).
payload_data.charges.fees[].descriptionstringDescription of fee, extracted from receipt.
payload_data.charges.fees[].amountnumberFee amount.
payload_data.charges.fees[].scopestringScope of fee: order or item.
payload_data.charges.currency_codestringCurrency code.
purchase
payload_data.purchaseobjectPurchase and transaction details.
payload_data.purchase.order_numberstringMerchant-issued order number.
payload_data.purchase.statusstringordered, shipped, refunded, returned, etc.
payload_data.purchase.purchase_datestringDate the purchase was made.
payload_data.purchase.purchase_timestringTime the purchase was made.
payload_data.purchase.transaction_idstringPrimary transaction ID.
payload_data.purchase.long_transaction_idstringExtended transaction ID.
payload_data.purchase.cashier_idstringCashier or operator ID.
payload_data.purchase.register_idstringRegister ID.
payload_data.purchase.loyalty_numberstringLoyalty program member number.
payload_data.purchase.purchase_time_stringstringPurchase time formatted as string.
payload_data.purchase.purchase_time_hh_mmstringPurchase time formatted to HH:MM.
payload_data.purchase.loyalty_programbooleanWhether this is a loyalty purchase.
payload_data.purchase.unqualified_promotionsstring[]Promotion IDs that did not qualify.
payload_data.purchase.qualified_promotionsstring[]Promotion IDs that qualified.
payload_data.purchase.typestringPurchase type: in-store, delivery, pickup, digital, etc.
products
payload_data.productsobject[]Purchased product line items.
payload_data.products[].namestringProduct description, as extracted from the receipt.
payload_data.products[].numberstringProduct SKU or internal merchant ID, as extracted from receipt.
payload_data.products[].name_normalizedstringProduct name, as associated with the UPC.
payload_data.products[].quantitynumberQuantity purchased.
payload_data.products[].unit_pricenumberPrice per unit.
payload_data.products[].regular_pricenumberRegular (non-discounted) price.
payload_data.products[].purchased_pricenumberFinal purchase price, after any discounts/coupons.
payload_data.products[].purchase_statusstringordered, completed, shipped, out for delivery.
payload_data.products[].is_sensitivebooleanWhether the product is considered sensitive.
payload_data.products[].qualified_promotionsstring[]Whether this specific product index qualified for promo.
payload_data.products[].categorystringProduct category.
payload_data.products[].sizestringSize or weight of the product.
payload_data.products[].brandstringBrand of the product.
payload_data.products[].upcstringUniversal Product Code.
payload_data.products[].subproductsobject[]Nested subproducts, if present.
discounts
payload_data.discountsobject[]Discount line items.
payload_data.discounts[].typestringType of discount (e.g., manufacturer_coupon).
payload_data.discounts[].descriptionstringDiscount text, as extracted from the receipt.
payload_data.discounts[].amountnumberAmount of discount applied.
payload_data.discounts[].scopestringScope of discount (order or item level).
payload_data.discounts[].product_idsstring[]Reference to product IDs if item level.
note

email_metadata is included in the payload only when the receipt is an email receipt and not for paper or account-linking receipts.

note

ReceiptProcessed fires for all receipt scans regardless of content of scan data.

note

The ReceiptProcessed event contains PVP data but this is not where the client should be looking for the amount to reward. Use the other event type RewardUpdated instead.