NFC Cards
NFC cards are physical, contactless cards that let you spend money from your OLIVE wallet. Tap your card at any merchant’s POS terminal, enter your PIN, and the payment is done.Why Cards?
Not everyone has a smartphone. Not everyone wants to use WhatsApp for payments. OLIVE cards solve this by giving you a simple, physical way to pay:- Tap to pay - No apps, no internet on your phone needed
- Secure - Every transaction requires your 4-digit PIN
- Family-friendly - Give cards to children with spending limits
- Works offline at POS - The merchant terminal handles connectivity
Card Types
OLIVE has two types of cards that work together:Parent Card
Your main card, linked directly to your wallet. When you register and get a card, it’s a parent card.- Controls the wallet
- Decides spending limits for child cards
- Can allocate funds to children
- Uses your subscriber PIN (the one you set at registration)
Child Card
Secondary cards you give to family members (spouse, children) that share your wallet but with controlled limits.- Spends from parent’s wallet balance
- Has its own independent 4-digit PIN
- Has daily and monthly spending limits
- Can have a specific allocation of funds
The Parent-Child Relationship
Think of it like a family bank account:Fund Allocation for Child Cards
This is one of OLIVE’s powerful features. When you create a child card, you can allocate a specific amount for that child to spend.How It Works
- Parent has wallet balance: 500,000 SLE
- Create child card for son with 50,000 allocation
- Son can only spend up to 50,000 SLE - even though parent’s wallet has more
- Parent’s own spending: Unaffected by child allocations
The Safety Mechanism
When your child tries to pay, OLIVE checks TWO things:- Does child have remaining allocation? - If son’s allocation is 50,000 and he’s spent 30,000, he can only spend 20,000 more
- Does parent have actual balance? - Child can never spend more than what parent actually has
Setting Allocations
When creating a child card:- Parent must have enough balance
- Total allocations to all children can’t exceed parent’s balance
What Happens When Child Spends
- Child taps card, enters child PIN
- OLIVE checks child’s remaining allocation
- OLIVE checks parent’s actual balance
- If both pass, payment proceeds
- Money comes from parent’s wallet
- Child’s spent amount is tracked
Child Card Limits
Every child card has spending limits:Daily Limit
Maximum the child can spend in one day. Default: 25,000 SLE (half of parent default).Monthly Limit
Maximum the child can spend in one month. Default: 250,000 SLE (half of parent default).How Limits Are Enforced
Before each transaction, OLIVE checks:- Today’s total spending + this amount is within daily limit?
- This month’s total spending + this amount is within monthly limit?
- Remaining allocation covers this amount?
Child Card PIN
Child cards have their own PIN, separate from the parent:Why Separate PINs?
- Children don’t need to know parent’s PIN
- Each child has their own PIN
- If child’s PIN is compromised, parent’s is still safe
How Child PIN Works
- 4 digits (0-9)
- Hashed:
SHA256(PIN + card_serial_number) - Stored in
nfc_cardstable, notsubscribers
Changing Child PIN
To change a child’s PIN:- Parent provides their own PIN (authorization)
- Current child PIN is verified
- New child PIN is set
Card Lifecycle
1. Card Uploaded
OLIVE receives a batch of physical cards from manufacturer. Each has a unique serial number and MAC address. Status:unassigned | Type: parent (default)
2. Card Linked (Parent)
A subscriber registers and links the card to their wallet. Status:assigned | Type: parent
Triggers:
- Card status changes
linked_attimestamp set- Default limits applied (50K daily, 500K monthly)
- SmartPay notification sent
3. Child Card Created
Parent creates a child card for a family member. Status:assigned | Type: child
Required:
- A physical card (from inventory)
- Parent’s PIN (to authorize)
- Child holder name
- Child’s own 4-digit PIN
- Child’s phone number (for notifications)
- Child’s relationship (son, daughter, spouse)
- Daily/monthly limits (defaults to half of parent)
- Allocated amount
4. Card Blocked
Card can be blocked if lost, stolen, or suspicious. Status:blocked
Triggers:
- WhatsApp notification to owner
- All transactions rejected
5. Card Unblocked
Admin or owner restores the card. Status:assigned (goes back to previous active state)
6. Card Lost/Expired
Terminal states - card cannot be recovered. Status:lost or expired
How Many Child Cards?
| Subscriber Category | Max Child Cards |
|---|---|
| Retail | 4 |
| VIP | 4 |
| PEP | 4 |
| Corporate | 100 |
Card Serial and MAC Address
Every card has two identifiers:Serial Number
- Human-readable:
CARD0005,NFC12345 - Alphanumeric only (A-Z, 0-9)
- Printed on the card
MAC Address
- Hardware identifier:
04:64:A6:62:CF:13:95 - Used for NFC communication
- Can be stored with or without colons
Card Batches
Cards are uploaded in batches (from manufacturer):What Happens at Payment
When you tap your card at a merchant:For Parent Cards
- POS reads card serial/MAC
- OLIVE finds the card, verifies it’s
assigned - OLIVE finds the subscriber, verifies they’re
active - You enter your subscriber PIN
- OLIVE validates:
SHA256(PIN + phone_number)matches stored hash - KYC limits checked
- Balance checked
- Payment processed
For Child Cards
- POS reads card serial/MAC
- OLIVE finds the card, verifies it’s
assignedand type ischild - OLIVE finds the parent subscriber (card owner)
- Child enters child PIN
- OLIVE validates:
SHA256(PIN + card_serial)matches card’s PIN hash - Allocation checked (child’s remaining amount)
- Parent’s balance checked
- Daily/monthly limits checked
- Payment processed from parent’s wallet
Notifications
OLIVE sends WhatsApp notifications for card events:| Event | Sent To | Message |
|---|---|---|
| Card linked | Parent | Card number confirmed |
| Child card created | Parent | Child name, card, allocation, limits |
| Child card created | Child (if phone provided) | “Your parent created a card for you” |
| Card blocked | Card owner | Security alert |
| Card unblocked | Card owner | Card is now active |
| Child PIN changed | Parent | Confirmation |
| Child PIN changed | Child | ”Ask parent for new PIN” |
SmartPay Integration
When a card is linked, OLIVE notifies SmartPay (the POS network) with:- First name, last name
- Phone number
- Card serial
- MAC address