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.

Signed Receipt

The signed receipt will appear here

Submit a transaction to see the result