
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.
Create the order
POST /orders
{
"terminal$id": "8386af3b0f",
"referenceId": "till-2-0418",
"totalOrderAmount": {
"total": 50000,
"currency": "752"
}
}Customer taps their card
GET /orders/:orderId/tokens
{
"cardId": "c550c29e80",
"scheme": "VISA"
}Webhook returns a token
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"
}
}Update, then charge
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 /paymentsBuild it yourself
Step-by-step developer guides for everything on this page.
Use the NFC Reading API to create tag-reading sessions on payment terminals, scan NFC/RFID-tagged products, and retrieve scanned tag data.
Read guide Online · GuideManage the full payment lifecycle from order creation through capture, void, cancel, and refund operations using the Surfboard Payments API.
Read guide Online · GuideReceive real-time event notifications via webhooks. Subscribe to order, payment, logistics, and merchant application events with automatic retries and signature verification.
Read guide