Know Your Customer, From a Single Tap
Identification

Know Your Customer, From a Single Tap

With Identification, the card a customer taps becomes a real-time identity signal before the payment runs. Open the order → the customer taps their card → Surfboard sends you a webhook with a token for that card → you change the order in the moment, then take the money.

Pre-payment Identity Layer

Today, card-present rails can do far more than payments. Identification introduces a new pre-payment identity layer, letting your platform answer questions such as: Who is this customer?

Match the tap token against your CRM, loyalty system, journal, or booking database. What are they entitled to? Discounted meal? Corporate lunch? Staff meal? Prepaid ticket? Subscription access? Free service? Whatever the answer, you have a short window to write it into the open order before a single krona moves.

Your checkout. Your logic. Our infrastructure.

Your system decides the final price — full, discounted, zero — updates the order, and initiates the payment for that amount. Identify ticket purchases, online reservations, pre-orders, click-and-collect orders, subscriptions, or memberships.

How It Works, 4 Steps

The window between the tap and the payment is where your business logic lives, and it is short — the customer is standing at the terminal. Treat the lookup as a fast path, and never block a payment on it.

1

Create the order

Build the order at the till as you normally would, with the lines you have. Leave the payment out of it for now — that is what keeps the window open.
POST /orders
{
  "terminal$id": "8386af3b0f",
  "referenceId": "till-2-0418",
  "totalOrderAmount": {
    "total": 50000,
    "currency": "752"
  }
}
2

Customer taps their card

The terminal reads the card and Surfboard tokenizes it. Nothing is charged yet — the tap is being used for identification. You can wait for the webhook, or pull the same card data off the order yourself.
GET /orders/:orderId/tokens

{
  "cardId": "c550c29e80",
  "scheme": "VISA"
}
3

Webhook returns a token

Surfboard sends order.customer.identify with the order and a persistent, anonymized card token. Match it against your CRM, loyalty system, journal or booking database.
{
  "eventType":
    "order.customer.identify",
  "data": {
    "orderId": "832cf9f93d",
    "cardId": "c550c29e80"
  }
}
4

Update, then charge

Apply the member price, the redeemed points, the entitlement — or nothing at all, if you do not recognise the token. Then initiate the payment for the amount you just set.
PUT /orders/:orderId
{
  "customer": {
    "customerId": "cus_88213"
  },
  "totalOrderAmount": {
    "campaign": 5000,
    "total": 45000
  }
}

Unlock powerful new use-cases

This simple flow unlocks powerful new use-cases for check-in, entitlements, loyalty, access control, discount logic, meal benefits, ticket validation, free purchases, and much more. All without friction for the customer.

1. Corporate Lunch / Subsidized Meals

The customer taps their card; your system checks their entitlements:

  • Free meal today?
  • Discounted amount?
  • Paid full yesterday?

You update the open order with the correct price, then send the payment request.

Perfect for:

  • Employer-subsidized canteens
  • School cafeterias
  • Staff dining programs

2. Ticket Redemption (Online → Venue)

A user buys a ticket online using a card, then taps the same card at the door.

Identification recognizes the token and confirms:

  • Ticket purchased
  • Ticket still valid
  • Event entry allowed

No QR codes. No apps. No searching emails. Just tap and enter.

This is powered by Surfboard’s unified tokenization across online and in-store channels.

3. Loyalty Check-In Without an App

Using Surfboard’s wallet-native loyalty platform, Identification enables:

  • App-free loyalty check-in
  • Auto-recognition of returning customers
  • Personalized benefits triggered in real time
  • One-tap enrollment through Apple/Google Wallet

The tap becomes the moment of identification and loyalty activation.

4. Access Control & Membership Verification

Ideal for gyms, coworking spaces, private clubs, manufacturing sites, or employee zones.

Tap card =

  • Recognize the user
  • Check membership validity
  • Open gate / deny access
  • Log the visit

5. Kiosk & Self-Checkout Entitlements

In unattended flows (kiosks, vending, EV chargers, ticketing), Identification can:

  • Apply discounts
  • Validate prepayment
  • Verify user type (student, member, staff, VIP)
  • Trigger custom pricing or restriction logic

Surfboard’s unattended architecture already supports this natively.

6. High-Speed Check-In for Journal & Booking ISVs

For verticals like hair/beauty, dental, veterinary, sports, wellness, the tap can:

  • Confirm appointment arrival
  • Bring up their profile automatically in the system
  • Trigger loyalty or prepayment logic
  • Start the service flow instantly

Reduces manual search time and improves throughput.

Available on Android terminals

Identification runs on card payments at Surfboard’s Android terminals today. Support for further payment methods and devices is on the roadmap.

It is the same order you already build, the same webhooks you already receive. No new integration, no separate identity stack.

Ready to identify?

Subscribe to order.customer.identify, look the card token up against your own records, and update the order before the payment runs. Two calls you already make, one webhook in between.

// On receipt of the webhook
{
  "eventType":
    "order.customer.identify",
  "data": {
    "orderId": "832cf9f93d",
    "cardId": "c550c29e80"
  }
}

// Recognised it? Update, then charge.
PUT /orders/832cf9f93d
POST /payments