API-REFERENTIE

REST. JSON. Bearer auth.

Stabiel, versie-beheerd en klein. Elk endpoint accepteert nette JSON en geeft een voorspelbare vorm terug — inclusief de errors.

BASE-URLhttps://api.tapreceipt.com
POST
/v1/receipts
GET
/v1/receipts/:id
DELETE
/v1/receipts/:id
GET
/v1/receipts
POST
/v1/terminals
GET
/v1/terminals/:id
POST
/v1/pucks/provision
POST
/v1/webhooks
POST
/v1/refunds
POST /v1/receipts

Maak een bon

Het meest aangeroepen endpoint. Alles in lines is optioneel — alleen een totaal is voor veel belastingregimes al een geldige bon.

Request
POST /v1/receipts
Content-Type: application/json

{
  "merchant_id": "mer_018E7Q",
  "terminal_id": "trm_NL_AMS_03",
  "currency":    "EUR",
  "total_minor": 940,
  "tax_minor":   164,
  "lines": [
    { "name": "Filterkoffie", "qty": 1, "price_minor": 380, "tax_rate": 0.21 },
    { "name": "Kaneelbroodje","qty": 1, "price_minor": 350, "tax_rate": 0.09 }
  ],
  "metadata": { "order_ref": "POS-44812" }
}
200 OK
{
  "id":           "rcp_018E7Q4N...",
  "object":       "receipt",
  "url":          "https://r.tapreceipt.com/8q3hv2",
  "wallet_pass":  "https://r.tapreceipt.com/8q3hv2/pass",
  "created":      1746200400,
  "currency":     "EUR",
  "total_minor":  940,
  "tax_minor":    164,
  "lines":        [ /* … */ ],
  "merchant_id":  "mer_018E7Q",
  "terminal_id":  "trm_NL_AMS_03"
}
GET /v1/receipts/:id

Haal een bon op

GET /v1/receipts/rcp_018E7Q4N...
Authorization: Bearer sk_live_********

200 OK
{
  "id":         "rcp_018E7Q4N...",
  "object":     "receipt",
  "status":     "tapped",
  "tapped_at":  1746200401,
  "url":        "https://r.tapreceipt.com/8q3hv2",
  /* … */
}
WEBHOOKS

Event-types

receipt.createdEen bon is aangemaakt via de API.
receipt.tappedEen klant tapte de puck en opende de bon.
receipt.wallet_savedDe bon is opgeslagen in Apple/Google Wallet.
receipt.deletedEen klant heeft zijn kopie uit de wallet verwijderd.
puck.tamperDe tamper-seal van een puck is verbroken.
terminal.offlineEen terminal verstuurt geen heartbeats meer.