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-c34dcd37",
"providerLocationId": "ts-loc-portland"
},
"merchant": {
"merchantId": "merchant_golden_bakery",
"name": "Golden Bakery",
"category": "Bakery",
"location": {
"address1": "45 Burnside Road",
"city": "Portland",
"region": "OR",
"postalCode": "97201",
"country": "US"
}
},
"transaction": {
"occurredAt": "2026-04-01T11:28:29.608Z",
"status": "completed",
"subtotalMinor": 960,
"taxMinor": 82,
"tipMinor": 0,
"discountMinor": 0,
"totalMinor": 1042,
"currency": "USD"
},
"payment": {
"method": "card",
"brand": "Amex",
"network": "amex",
"last4": "0005",
"cardholderName": "Morgan Blake",
"authorizationCode": "AUTH653",
"expiryMonth": "01",
"expiryYear": "2028"
},
"lineItems": [
{
"description": "Cinnamon Roll",
"quantity": 2,
"unitPriceMinor": 480,
"grossMinor": 960,
"taxMinor": 82,
"totalMinor": 1042
}
],
"rawPayload": {
"demoNonce": "c34dcd37",
"payloadVersion": "demo-1"
}
}Each sample randomizes the merchant, line items, card, and provider. Every payload gets a unique providerTransactionId.