~netlandish/ponch-api-docs

#Ponch API

Ponch is a digital loyalty stamp card platform. Merchants design a stamp card, customers add it to Apple Wallet or Google Wallet, and staff stamp it at the counter. The Ponch API lets another system do the same things and hear about them as they happen:

  • Act: add stamps, redeem rewards, correct a stamp count, look up a card or a customer, get a card's join link.
  • Listen: receive a signed webhook when a customer joins, gets a stamp, earns or redeems a reward, or has a card deactivated. If you can't receive webhooks, poll an events feed instead.

It's a plain JSON-over-HTTPS REST API authenticated with a bearer API key. The Ponch apps for Zapier and Make are built on it, and anything they do you can do directly.

#Base URL

https://app.getponch.com/api

Every path in these docs is relative to that base. For example, GET /integrations/me means GET https://app.getponch.com/api/integrations/me.

#Quickstart

  1. In the Ponch dashboard, go to Integrations → API keys, enter a label and click Create key. Copy the key now: it is shown only once. See Authentication.

  2. Check the key:

    curl https://app.getponch.com/api/integrations/me \
      -H "Authorization: Bearer $PONCH_API_KEY" \
      -H "Accept-Language: en"
    
    {
      "company": {"id": "3f1c2a9e-5b7d-4c11-9a2e-6d0b8f4e7a21", "name": "Luna Coffee", "slug": "luna-coffee"},
      "merchant": {"id": "6a8c0e2a-4c6e-4a8c-b0e2-4a6c8e0a2c5d", "slug": "luna-coffee"},
      "plan": {"slug": "growth", "name": "Growth"},
      "api_enabled": true,
      "store_count": 1,
      "active_template_count": 1
    }
    
  3. Add a stamp to a card by its barcode (the SC-… code on the pass):

    curl https://app.getponch.com/api/stamping/stamp \
      -H "Authorization: Bearer $PONCH_API_KEY" \
      -H "Accept-Language: en" \
      -H "Content-Type: application/json" \
      -d '{"barcode_value": "SC-1540CD2A802A", "source": "api", "idempotency_key": "order-10482"}'
    

    The customer's wallet pass updates within seconds.

To try calls from your browser instead, use the API playground.

#Pages

Page What's in it
Authentication Creating, revoking and deleting API keys; why a key is rejected
Conventions Headers, data types, errors, idempotency, pagination, language, rate limits
Endpoints Every endpoint an API key can call
Events The six event types and their payloads
Webhooks Subscribing, delivery headers, verifying signatures, retries
Polling The events feed, for clients that can't receive webhooks
Playground Trying the API from your browser at /api/docs
Zapier and Make How the Ponch apps map onto the API
Changelog What changed, and our compatibility promise

#Concepts

  • Company: one brand. An API key belongs to exactly one company and sees only that company's data.
  • Store: a physical location of a company.
  • Template: a stamp card design: how many stamps it takes and what the reward is. The API calls it a template; the dashboard calls it a stamp card. A template belongs to one store, or to the whole company.
  • Card: one customer's copy of a template, identified by its barcode (SC-…). The barcode is printed in the pass's QR code.
  • Customer: the person holding the card. Customers have no Ponch login; the card's barcode is their credential.
  • Reward: earned each time a card reaches the stamp target. Rewards wait in a pending queue on the card until a staff member or the API redeems them.

API access is included in paid plans.

#Support

Questions or problems: support@getponch.com.

About this wiki

commit 5e140ef5493db7e98830f4b7ef4d620de5419518
Author: Peter Sanchez <peter@netlandish.com>
Date:   2026-10-20T06:45:49-06:00

add proper title and descriptions to each page
Clone this wiki ("main" branch)
https://git.code.netlandish.com/~netlandish/ponch-api-docs (read-only)
git@git.code.netlandish.com:~netlandish/ponch-api-docs (read/write)