POS Integration Guide
Complete guide for integrating Point-of-Sale terminals with OLIVE for NFC card payments.Overview
POS (Point-of-Sale) terminals allow merchants to accept OLIVE card payments. Each terminal authenticates using HMAC signatures with a per-client API key ID and secret.NFC Cards
Read contactless OLIVE cards
HMAC Auth
Secure signature-based authentication
Real-time
Instant payment processing
Prerequisites
1
Merchant Registration
Register as a processor via
/processors endpoint (admin only)2
Receive Credentials
Obtain API key and HMAC secret (shown once at creation)
3
Terminal Setup
Configure terminal with credentials
4
Test Transaction
Perform test payment in sandbox
Authentication
POS terminals use HMAC-SHA256 signatures for authentication.Required Headers
Signature Generation
Signatures are valid for 5 minutes. Ensure your terminal clock is synchronized with NTP.
The
/payment/* routes (for in-app integrations) use the same HMAC authentication but do not require a pin field. The partner’s HMAC signature provides the security instead of the cardholder PIN.Payment Flow
1
Card Tap
Customer taps NFC card on terminal
2
Read Card
Terminal reads card serial number via NFC
3
Verify Card
Call
POST /api/v1/pos/verify-card to validate card4
Collect PIN
If valid, prompt customer for 4-digit PIN
5
Process Payment
Call
POST /api/v1/pos/payment with amount and PIN6
Display Result
Show success/failure message to customer
Sequence Diagram
API Endpoints
Verify Card
Check if card is valid and get cardholder info:Process Payment
Execute payment after PIN verification:fee_amount is dynamic and comes from the active POS fee configuration. If the merchant setup charges a fee for the transaction, this field returns that amount instead of 0.00.
Refund Payment
Refund a previous transaction:Error Handling
Error Response Example
Terminal Implementation
Sample Terminal Code
Best Practices
Security
- Store HMAC secret securely (encrypted)
- Use HTTPS only
- Never log credentials
- Implement PIN attempt limits
User Experience
- Show cardholder name for verification
- Display balance before payment
- Print/show receipts
- Clear error messages
Reliability
- Handle network errors gracefully
- Implement retry with same reference
- Sync terminal clock with NTP
- Queue failed transactions
Compliance
- Log all transactions locally
- Daily reconciliation
- Keep receipts/records
- Report issues promptly
Testing
Sandbox Environment
Use sandbox credentials for testing:Test Cards
Related
POS Payment API
Payment endpoint reference
Verify Card API
Card verification endpoint
Processor Setup
Register as processor
Security Guide
HMAC authentication details