Tap on Phone
Accept contactless cards, phones and watches on any NFC Android phone. No terminal to buy, rent or charge.
ASYS Pay turns any NFC Android phone into a card terminal. Shops take contactless cards, phones and watches without renting a POS, and software companies build the same tap into their own apps. The money goes straight to the merchant’s bank account.
Built for contactless
Products
Take payments on your own phone, inside your own app, or at every branch of the businesses you serve, with the same API and the same settlement.
Accept contactless cards, phones and watches on any NFC Android phone. No terminal to buy, rent or charge.
Put ASYS Pay’s payment screen inside your own Android app. Cashiers never switch apps, and card data never reaches your code.
collect.launch(PaymentRequest(
amountKobo = 850_000,
reference = "order-1042",
))
Sign up the businesses you serve, add their branches, and connect each phone with a one-time code.
POST /merchants201POST /stores201POST /activation-codes201Owners check their BVN or NIN, CAC and bank account on our pages. You never handle their ID.
The bank pays each merchant directly, usually the next working day. ASYS Pay never holds the money.
With ASYS Retail
A sale paid by tap posts itself: the sale, the card fee and the stock, ready for your accounts and for ASYS Tax.
| Account | Debit | Credit |
|---|---|---|
| Bank | 8,457.50 | |
| Card fees | 42.50 | |
| Sales | 8,500.00 |
ASYS Pay for shops
Sign up in the ASYS Pay app in a few minutes. Start with everyday limits, and get higher ones when your business checks pass.
Android app · coming to Google Play
ASYS Pay for platforms
POS, inventory, booking and school-fees apps add card payments in days, and keep their customers inside their own product.
Test keys the moment you sign up, test cards for every outcome, and a sandbox that behaves like the real thing.
Get test keysOpen ASYS Pay with one Android intent, or put the payment screen inside your app with the Tap SDK.
See the codeSend the owner a one-use onboarding link. We check BVN or NIN, CAC and the bank account, then tell you by webhook.
API referenceIts phone till opens ASYS Pay for card taps, and every sale lands in the books with the fee.
Developers
Sign up and get test keys at once. Every outcome has a test card, every payment is safe to retry, and every webhook is signed.
// Once per phone, with a code from your server
AsysPayTap.terminal(context).connect(activationCode)
// At checkout
val collect = registerForActivityResult(CollectPayment()) { result ->
if (result.approved) confirmOnServer(result.reference)
}
collect.launch(PaymentRequest(
amountKobo = 850_000, // ₦8,500.00
reference = "order-1042",
))
POST /v1/partner/merchants
Authorization: Bearer ap_test_…
{
"reference": "shop-6",
"legal_name": "Kano Fabrics Ltd",
"trading_name": "Kano Fabrics"
}
→ 201 Created
{ "id": "mer_01k…", "status": "active", … }
POST https://your.app/webhooks/asyspay
AsysPay-Signature: t=1762600000,v1=5f2c…
{
"id": "evt_123",
"type": "payment.approved",
"data": {
"reference": "order-1042",
"status": "APPROVED",
"amount_kobo": 850000,
"fee_kobo": 4250,
"masked_pan": "506099*********0019"
}
}
Security
The card is read and sealed on the phone, inside ASYS Pay. Only our card zone can open it, in a hardware security module. Your app, your server and our own dashboard only ever see a masked number.
Pricing
Pay only when you get paid. No terminal, no monthly fee and no setup fee.
per successful payment, capped at ₦10,000
Software companies: ask us about revenue share.
Create a sandbox account in a minute, or talk to us about bringing tap to pay to your shops.