📱 AfriLink Tap — New

Wearables to Payables

Link any NFC tag, ring, wristband, sticker, keychain or card to your AfriLink @handle. One tap opens a payment page — no app, no POS machine, no friction.

Supported wearables & tag types

Any NFC tag that supports NDEF URI records works — which covers virtually every consumer NFC product on the market. AfriLink Tap is hardware-agnostic.

📌
NFC Sticker
💍
Smart Ring
Wristband
💳
NFC Card
🔑
Keychain
Smartwatch
💡
No proprietary reader hardware needed. AfriLink Tap uses standard URL-based NFC (NDEF records) — the same technology used by Google Pay transit cards and Apple Pay marketing tags. Any phone that can read NFC tags can pay.

How it works

1

Create a Pay Identity

Set up your AfriLink @handle in the Merchant or Agent dashboard. This is your permanent, human-readable payment address.

2

Register Your Tag

In Merchant → NFC Tags, register a new tag and link it to your @handle. A unique TG… Tap URL is instantly generated.

3

Program the Physical Tag

Write the Tap URL to the tag using the browser programmer below (Chrome on Android) or any NFC writing app. One-time setup.

4

Tap & Pay

Customer taps the wearable with their phone. Browser opens the payment page for your @handle — no app download, no friction.


Pay at a merchant with your wearable

AfriLink Tap now works in both directions. Your wearable isn't just for receiving payments — tap it at any AfriLink POS terminal to pay a merchant or agent instantly. No phone needed, no app to open, no PIN to type.

💳
Think contactless card, but for mobile money. Your wearable is linked to your AfriLink wallet. Tap it to a merchant's phone → funds move in under 3 seconds → both sides get a push notification. Completely closed-loop — no card networks, no scheme fees.
1

Merchant opens POS

The merchant opens AfriLink POS on their NFC Android phone, enters the amount, and taps Charge. A 90-second session is created.

2

You tap your wearable

Hold your ring, wristband, card or sticker to the back of the merchant's phone. The NFC chip broadcasts the Tap URL in under one second.

3

Identity resolved

The server reads the Tag ID, resolves it to your AfriLink @handle and linked wallet, and prepares the debit — all in real time.

4

Payment complete

Your wallet is debited and the merchant's wallet is credited atomically. Both receive a push notification. The merchant's screen shows a green success card.

🏪

For merchants & agents

Turn any NFC Android phone into a contactless payment terminal — no extra hardware needed.

Open POS Terminal →
📱

No NFC on the merchant's phone?

The POS terminal auto-falls back to a QR code or manual @handle entry. Works on any smartphone — iOS or Android.

Learn about POS Terminal →

Your wearable does double-duty. The same physical tag lets customers tap to pay you (receive flow) and lets you tap to pay at any AfriLink POS terminal (pay flow). Linking your wallet is the same six-step process as linking for receiving — the only difference is whose @handle you use.

🔄
One tag, two directions. The Tap URL on your wearable embeds your unique tag ID. When a merchant's POS reads it, the server looks up your @handle and debits your wallet. When a customer's phone reads it, their browser opens your payment page so they can send money to you. Zero extra programming required — context determines direction.
1

Create your account

Sign up at AfriLink and verify your identity. Merchant or personal accounts both work — you need an active @handle and a wallet balance.

2

Open NFC Tags

In your dashboard, navigate to NFC Tags. Tap Register new tag and choose your wearable type: ring, wristband, sticker, card, or keychain.

3

Link to your @handle

Enter your own AfriLink @handle — the one tied to the wallet you want debited when you tap at a POS. This is what makes it a payer wearable.

4

Copy your Payer Tag URL

The dashboard generates a unique Tap URL in the form https://afrilinkpay.com/tap/TG…. Copy it — this is what you'll write to the physical tag.

5

Program the physical tag

Paste the URL into the programmer below, switch to Tap to Pay mode, and hold your NFC wearable to the back of your Android phone. Done in under 5 seconds.

6

Tap to pay at any POS

Walk up to a merchant running AfriLink POS. They enter the amount — you tap your wearable to their phone. Your wallet is debited and their wallet credited in 2–3 seconds.

⚠️

Spending limit protection

Set a per-tap spending limit in Account → NFC Settings. Taps above that limit require confirming a PIN on your phone — your wearable cannot be drained without your knowledge.

🔒

Instant deactivation

Lost your wearable? Open the dashboard, find the tag in NFC Tags, and tap Deactivate. The tag stops resolving immediately — no one can use it to pay from your wallet.

💬

Push notifications

Every tap triggers an instant push notification on your phone showing the merchant name, amount, and new balance — so you always know exactly what left your wallet and when.


Program a Tag

Use the Web NFC API to write your Tap URL directly to a physical tag from your browser — no extra app needed on Android. Works for both the receive and pay flows; select the mode that matches your use case below.

Register a tag in Merchant → NFC Tags, link it to your business @handle, and copy the Tap URL. Your customers tap this wearable to open your payment page.

Your Merchant Tap URL

Find your Tap URL in Merchant → NFC Tags — copy the URL from your registered tag row.

⚠️ Requires Chrome 89+ on Android with NFC enabled. Browser compatibility →
iPhone / other browsers: use a free NFC writing app (NFC Tools or NFC TagWriter by NXP) and write the Tap URL as a URL record.


Developer API

Integrate AfriLink Tap into your app or website with two simple API calls. Full merchant API key auth required for write operations; the public resolve endpoint needs no auth.

Register a tag

JavaScript
// POST /api/wearables — register an NFC tag to your @handle
const res = await fetch('https://afrilinkpay.com/api/wearables', {
  method:  'POST',
  headers: {
    'Content-Type':       'application/json',
    'x-merchant-api-key': 'YOUR_API_KEY',
  },
  body: JSON.stringify({
    handle:      '@myshop',           // your AfriLink Pay Identity handle
    displayName: 'MyShop Checkout Ring',
    tagType:     'ring',              // sticker | card | ring | band | keychain | watch | custom
  }),
});

const tag = await res.json();
// {
//   tagId:   'TG3F8A1B2C',
//   tapUrl:  'https://afrilinkpay.com/tap/TG3F8A1B2C',  ← write this to the NFC tag
//   payUrl:  'https://afrilinkpay.com/pay/@myshop?source=nfc',
//   status:  'active',
//   tapCount: 0
// }

Resolve a tap Public — no auth

JavaScript
// GET /api/tap/:tagId — resolve a tag ID to its handle + redirect URL
const res  = await fetch('https://afrilinkpay.com/api/tap/TG3F8A1B2C');
const data = await res.json();
// {
//   handle:     'myshop',
//   displayName: 'MyShop Checkout Ring',
//   tapUrl:      'https://afrilinkpay.com/tap/TG3F8A1B2C',
//   payUrl:      'https://afrilinkpay.com/pay/@myshop?source=nfc',
//   redirectTo:  '/pay/@myshop?source=nfc'
// }

// Redirect the user to the payment page:
window.location.href = data.redirectTo;

All tag management endpoints

EndpointMethodAuthDescription
/api/tap/:tagId GET None Resolve a tag. Returns handle, display name, and redirect URL. Increments tap count.
/api/wearables GET Merchant key List all tags registered to your merchant account.
/api/wearables POST Merchant key Register a new tag linked to a Pay Identity handle.
/api/wearables/:id GET Merchant key Get a single tag by its internal ID.
/api/wearables/:id PUT Merchant key Update a tag's handle, display name, type, NFC UID, or status (active/inactive).
/api/wearables/:id DELETE Merchant key Deactivate a tag (soft delete — it stops resolving, can be re-activated).
🔄
Updating without re-programming the tag: You can change which @handle a tag points to any time via PUT /api/wearables/:id with a new handle value — without touching the physical tag. The Tap URL stays the same; only what it resolves to changes.

Tap Groups — manage wearables together

Tap Groups let you bundle multiple NFC tags under one umbrella and set shared or per-tag spending rules. Perfect for families, event organisers, and corporate deployments.

👨‍👩‍👧‍👦

Family

Parents hold the merchant account. Assign rings, bands, or stickers to each child — set a per-transaction limit and a daily cap so kids can tap independently without surprises.

🎪

Event

Issue wristbands at the door. All bands belong to one group tied to your event dates. End the group when the event closes — every wristband stops resolving instantly.

🏢

Corporate

Give every employee a keychain or card. Manage limits centrally, add or remove members as your team changes, and pull group-level spend analytics in one dashboard view.

Per-member spending controls

Each tag in a group can have its own limits independent of the group's currency. Both limits are optional — omit them for unlimited.

FieldTypeDescription
perTxLimit Number | null Maximum amount per single tap transaction. Enforced at payment time.
dailyLimit Number | null Maximum total spend per calendar day. Resets at midnight UTC.
tagLabel String | null Human-friendly label within the group — "Alice's ring", "Seat 12A", "Sales team".

Tap Groups API

JavaScript
// 1 — Create a family group
const group = await fetch('https://afrilinkpay.com/api/tap-groups', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'x-merchant-api-key': 'YOUR_KEY' },
  body: JSON.stringify({
    name:      'Osei Family Wallet',
    groupType: 'family',          // family | event | corporate
    currency:  'GHS',
    description: 'Shared family spending tags',
  }),
}).then(r => r.json())
// → { id: 'uuid', name: 'Osei Family Wallet', groupType: 'family', memberCount: 0 }

// 2 — Add a child's tag to the group with per-day limit
await fetch(`https://afrilinkpay.com/api/tap-groups/${group.id}/members`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'x-merchant-api-key': 'YOUR_KEY' },
  body: JSON.stringify({
    tagId:      'uuid-of-wearable-tag',   // from POST /api/wearables
    tagLabel:   "Ama's wristband",
    perTxLimit: 50,                        // GHS 50 max per tap
    dailyLimit: 200,                       // GHS 200 max per day
  }),
}).then(r => r.json())
// → { ok: true, tag: { tagId: 'TG...', tagLabel: "Ama's wristband", ... } }

// 3 — List members of the group
const detail = await fetch(`https://afrilinkpay.com/api/tap-groups/${group.id}`, {
  headers: { 'x-merchant-api-key': 'YOUR_KEY' },
}).then(r => r.json())
// → { ...group, members: [{ tagId, tagLabel, perTxLimit, dailyLimit, ... }] }
EndpointMethodDescription
/api/tap-groupsPOSTCreate a group (family / event / corporate).
/api/tap-groupsGETList your groups. Filter by groupType or status.
/api/tap-groups/:idGETGet group details + full member list.
/api/tap-groups/:idPUTUpdate name, description, end date, or status (active / ended / cancelled).
/api/tap-groups/:id/membersPOSTAdd a tag to the group. Set perTxLimit, dailyLimit, tagLabel.
/api/tap-groups/:id/members/:tagIdDELETERemove a tag from the group (tag stays active, limits cleared).
/api/tap-groups/:idDELETEDelete the group. Clears all member associations first.
💡
Ending an event? Set the group status to ended via PUT /api/tap-groups/:id — all member tags immediately stop resolving at the POS. No need to physically collect wristbands.

Ready to tap?

Register your first NFC tag in the merchant dashboard, or launch the POS terminal to start accepting tap payments today.