ReceiptSummary Payload Samples
These are the JSON payloads a client will receive for all supported variations of the ReceiptSummary webhook.
1. Scan (complete)
Triggered when a new paper receipt is successfully scanned and processed. Subscribe to this event if you want to receive paper receipt data as soon as it's processed.
{
"id": "051748df-36f2-4a70-ac67-0d00faf1b84f",
"timestamp": 1776744008355,
"payload_data": {
"blink_receipt_id": "954d737a-c813-4249-8fab-428338abecff",
"receipt_type": "paper",
"status": "[accepted|rejected]",
"merchant_name": "Walmart",
"purchase_date": "2026-04-15 00:00:00",
"total": 5,
"item_count": 6,
"reason": "[DUPLICATE_RECEIPT|INVALID_RECEIPT|RECEIPT_TOO_OLD|USER_CAP]",
"client_user_id": "test_user_123",
},
"payload_type": "ReceiptSummary",
"version": 1,
}
Field Reference
| Field | Type | Description |
|---|---|---|
version | number | Top-level payload schema version. |
id | string (UUID) | Unique ID for this webhook delivery. |
timestamp | number | Unix timestamp in milliseconds. |
payload_type | string | Payload event type. Always "ReceiptSummary" |
payload_data | object | Container for the webhook payload data. |
payload_data.blink_receipt_id | string | UUID — Primary Blink Receipt ID. |
payload_data.receipt_type | string | Type of receipt (example - "paper") |
payload_data.merchant_name | string | Merchant or store name. |
payload_data.purchase_date | string | Date the purchase was made. |
payload_data.total | number | Total amount charged. |
payload_data.item_count | number | Number of items purchased in the receipt. |
payload_data.client_user_id | string | Your user ID that is passed to Actual via the SDK for you to match to users on your end. |
payload_data.status | string | accepted or rejected |
payload_data.reason | string | Only present when status: rejected. See rejection reason codes below. |
Rejection Reason Codes
| reason | description |
|---|---|
| DUPLICATE_RECEIPT | Receipt was determined to be a duplicate |
| INVALID_RECEIPT | Image was determined to an invalid receipt (not a receipt / fraudulent) |
| RECEIPT_TOO_OLD | Receipt is older than allowable threshold (default 14 days) |
| USER_CAP | User exceeded one or more submission thresholds |
note
ReceiptSummary fires for all receipt scans regardless of content of scan data.