Ingest Transaction
Submit a provider-agnostic POS payload. Hazel normalizes, signs with ES256, and stores the receipt.
Payload
JSON{
"source": {
"provider": "generic-toast-demo",
"providerTransactionId": "ts-demo-25a4188b",
"providerLocationId": "ts-loc-sanfrancisco"
},
"merchant": {
"merchantId": "merchant_luna_cafe",
"name": "Luna Cafe",
"category": "Cafe",
"location": {
"address1": "100 Market Street",
"city": "San Francisco",
"region": "CA",
"postalCode": "94105",
"country": "US"
}
},
"transaction": {
"occurredAt": "2026-06-05T04:27:17.194Z",
"status": "completed",
"subtotalMinor": 6010,
"taxMinor": 512,
"tipMinor": 300,
"discountMinor": 0,
"totalMinor": 6822,
"currency": "USD"
},
"payment": {
"method": "card",
"brand": "Mastercard",
"network": "mastercard",
"last4": "8888",
"cardholderName": "Sam Chen",
"authorizationCode": "AUTH623",
"expiryMonth": "06",
"expiryYear": "2027"
},
"lineItems": [
{
"description": "Matcha Latte",
"quantity": 2,
"unitPriceMinor": 680,
"grossMinor": 1360,
"taxMinor": 116,
"totalMinor": 1476
},
{
"description": "Blueberry Muffin",
"quantity": 3,
"unitPriceMinor": 450,
"grossMinor": 1350,
"taxMinor": 115,
"totalMinor": 1465
},
{
"description": "Avocado Toast",
"quantity": 2,
"unitPriceMinor": 1100,
"grossMinor": 2200,
"taxMinor": 187,
"totalMinor": 2387
},
{
"description": "Cold Brew",
"quantity": 2,
"unitPriceMinor": 550,
"grossMinor": 1100,
"taxMinor": 94,
"totalMinor": 1194
}
],
"rawPayload": {
"demoNonce": "25a4188b",
"payloadVersion": "demo-1"
}
}Each sample randomizes the merchant, line items, card, and provider. Every payload gets a unique providerTransactionId.