Taptap Send: Money Transfer is the Android client of UK-based Taptap Send Ltd for people in Europe, the Gulf and the United States who send money home to family in Africa. Senders pick a corridor, see a live FX quote on the landing calculator, fund with a debit card (Adyen, Checkout.com or Worldpay), an open-banking debit via Lean, a bank transfer or the in-app wallet, and pay out to mobile money (M-Pesa, MTN, Orange Money, Wave), a bank account or cash pickup. The same logged-in shell holds a Marqeta spend card with Google Pay push-provisioning, bill pay, a virtual bank account, cashback offers, UAE Beyon eKey sign-in and an SMB signup path. It competes with Wise, Remitly, WorldRemit and bank FX desks for diaspora senders moving funds from France, Germany and Spain toward Nigeria, Morocco and the rest of the receive network.
Landing FX quotes stamp sendAmount against a live fxRate before a remittanceId is minted for the chosen corridor. Wallet and card records then carry availableBalance, walletBalance and refundableBalance, while saved recipients hold recipientName, recipientPhone and payoutCountry for mobile-wallet and bank payouts.
Open-banking Lean bank links and virtual-account iban / accountHolder rows let treasury reconcilers match inflows to the same user. Diaspora payroll desks, family-office ledgers and beneficiary-KYC tools consume that data; openData Studio turns it into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Landing FX quote
GET
/v1/rates/quoteopendataReturns the landing-calculator FX quote for a send/payout currency pair — sendAmount, receiveAmount, fxRate and fees — used before a remittance is booked.
Auth: Optional session cookie after phone OTP / Google / Apple sign-in; logged-out visitors still read the public quote. Anti-bot challenge token header.
- sendCurrency
- payoutCurrency
- sendAmount
- receiveAmount
- fxRate
- feeAmount
- providerFee
- corridor
- fxRatesForLoggedOutUser
GET /v1/rates/quote?sendCurrency=EUR&payoutCurrency=NGN&sendAmount=250 HTTP/1.1 Accept: application/json X-Client-Challenge: <challengeToken>{ "sendCurrency": "EUR", "payoutCurrency": "NGN", "sendAmount": 250.00, "receiveAmount": 412500.00, "fxRate": 1650.00, "feeAmount": 1.99, "providerFee": 0.00, "corridor": "FR-NG", "fxRatesForLoggedOutUser": true }Home shell bootstrap
GET
/v1/session/bootstrapopenfinanceHydrates the signed-in home shell — feature flags, wallet snapshot and banners — after login.
Auth: Session after phone OTP / Google / Apple / Beyon eKey sign-in; anti-bot challenge token header.
- homeContext
- frontendContext
- featureFlags
- walletBalance
- sendCurrency
- banners
GET /v1/session/bootstrap HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json X-Client-Challenge: <challengeToken>{ "homeContext": "signed_in", "frontendContext": { "featureFlags": ["WALLET", "PHYSICAL_CARD", "BILLPAY"], "walletBalance": 184.20, "sendCurrency": "EUR" }, "banners": [] }List remittances
GET
/v1/sendsopenbankingPages the sender's remittance history with remittanceId, amounts, corridor and transferStatus for the activity list and send-again flow.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- remittanceId
- sendAmount
- receiveAmount
- sendCurrency
- payoutCurrency
- destinationCountry
- transferStatus
- paymentMethodType
- corridor
GET /v1/sends?limit=20 HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "items": [ { "remittanceId": "rmt_8f21a04c", "sendAmount": 250.00, "receiveAmount": 412500.00, "sendCurrency": "EUR", "payoutCurrency": "NGN", "destinationCountry": "NG", "transferStatus": "DELIVERED", "paymentMethodType": "card", "corridor": "FR-NG" } ] }List transfers
GET
/v1/remit-payoutsopenbankingReturns sent-transfer rows (with a companion view for inbound transfers) keyed by transferId and remittanceId.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- transferId
- remittanceId
- transferStatus
- statusName
- sendAmount
- payoutCountry
GET /v1/remit-payouts?transferType=sent HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "items": [ { "transferId": "tr_9c21", "remittanceId": "rmt_8f21a04c", "transferStatus": "DELIVERED", "statusName": "Delivered", "sendAmount": 250.00, "payoutCountry": "NG" } ] }Unified transaction history
GET
/v1/activityopenbankingMerges remittance, wallet, card and cashback rows into one activity feed.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- txnType
- remittanceId
- sendAmount
- transferStatus
- cashbackAmount
- last4
GET /v1/activity?limit=30 HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "items": [ { "txnType": "REMITTANCE", "remittanceId": "rmt_8f21a04c", "sendAmount": 250.00, "transferStatus": "DELIVERED" }, { "txnType": "CARD", "cashbackAmount": 1.25, "last4": "4412" } ] }List payout recipients
GET
/v1/beneficiariesosintReturns saved payout recipients — name, phone, country and mobile-wallet or bank details — for send-again.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- recipientId
- recipientName
- recipientPhone
- payoutCountry
- payoutCurrency
- paymentMethod
- accountNumber
- bankName
GET /v1/beneficiaries HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "items": [ { "recipientId": "rcp_44ab", "recipientName": "Amina Okonkwo", "recipientPhone": "+2348012345678", "payoutCountry": "NG", "payoutCurrency": "NGN", "paymentMethod": "mobileWallet", "accountNumber": null, "bankName": null } ] }Card available balance
GET
/v1/spend-card/balanceopenbankingReads spendable balance and PAN last4 for the Marqeta virtual/physical card.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- availableBalance
- sendCurrency
- last4
- expiryMonth
- physicalCardId
GET /v1/spend-card/balance HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "availableBalance": 184.20, "sendCurrency": "EUR", "last4": "4412", "expiryMonth": 9, "physicalCardId": "crd_88f1" }Wallet statements
GET
/v1/remit-wallet/ledgeropenbankingPages in-app wallet ledger rows and the current walletBalance for the statements screen.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- walletBalance
- sendCurrency
- txnType
- sendAmount
- transferStatus
GET /v1/remit-wallet/ledger?from=2026-09-01&to=2026-10-01 HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "walletBalance": 184.20, "sendCurrency": "EUR", "items": [ { "txnType": "TOPUP", "sendAmount": 100.00, "transferStatus": "SETTLED" } ] }Withdraw wallet to bank
POST
/v1/cashoutsopenfinanceCreates a wallet cash-out to a bank account after SCA, returning withdrawalId and remaining refundableBalance.
Auth: Session after phone OTP / Google / Apple sign-in; strong customer authentication check before release; anti-bot challenge token header.
- withdrawalId
- sendAmount
- iban
- sortCode
- accountNumber
- accountHolder
- refundableBalance
- transferStatus
- scaStatus
POST /v1/cashouts HTTP/1.1 Cookie: session=<sessionToken> Content-Type: application/json { "sendAmount": 80.00, "iban": "FR1420041010050500013M02606", "sortCode": null, "accountNumber": null, "accountHolder": "Marie Dupont" }{ "withdrawalId": "wd_17c2", "sendAmount": 80.00, "refundableBalance": 104.20, "transferStatus": "PENDING", "scaStatus": "APPROVED" }Wallet conversion rates
GET
/v1/rates/convertopendataQuotes an in-wallet currency conversion rate separate from the remittance landing FX.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- from
- to
- conversionRate
- fxRate
GET /v1/rates/convert?from=EUR&to=GBP HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "from": "EUR", "to": "GBP", "conversionRate": 0.8421, "fxRate": 0.8421 }Bill-pay merchants
GET
/v1/utilities/billersopendataLists billers in a receive country for the bill-pay flow, alongside saved bills and bill-payment history views.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- merchantId
- billerName
- payoutCountry
- payoutCurrency
GET /v1/utilities/billers?payoutCountry=NG HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "items": [ { "merchantId": "biller_ikeja", "billerName": "Ikeja Electric", "payoutCountry": "NG", "payoutCurrency": "NGN" } ] }Source-of-funds KYC
GET
/v1/profile/funding-declarationosintReads the sender's KYC source-of-funds, occupation and income band used to gate remittance limits.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- sourceOfFunds
- occupation
- monthlyIncome
- monthlySpending
- dateOfBirth
- nationality
- domicile
GET /v1/profile/funding-declaration HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "sourceOfFunds": "SALARY", "occupation": "Engineer", "monthlyIncome": "5000_9999", "monthlySpending": "1000_1999", "dateOfBirth": "1991-04-18", "nationality": "FR", "domicile": "FR" }Lean open-banking connection
GET
/v1/bank-links/currentopenfinanceReturns the Lean open-banking bank link used to debit the sender, including IBAN and payment intent id.
Auth: Session after phone OTP / Google / Apple / Beyon eKey sign-in; anti-bot challenge token header.
- connected
- bankName
- iban
- accountHolder
- intentId
GET /v1/bank-links/current HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "connected": true, "bankName": "FAB", "iban": "AE070331234567890123456", "accountHolder": "Marie Dupont", "intentId": "lean_pi_9a10" }Virtual bank account
GET
/v1/funding-accounts/virtualopenbankingReturns the sender's virtual IBAN / account-holder details used to top up the Taptap wallet.
Auth: Session after phone OTP / Google / Apple sign-in; anti-bot challenge token header.
- accountHolder
- iban
- bankName
- sendCurrency
- walletBalance
GET /v1/funding-accounts/virtual HTTP/1.1 Cookie: session=<sessionToken> Accept: application/json{ "accountHolder": "Marie Dupont", "iban": "FR7612345987650123456789014", "bankName": "Lead Bank", "sendCurrency": "EUR", "walletBalance": 184.20 }
Data categories
- fx-rates
- remittances
- transfers
- wallet
- cards
- recipients
- kyc
- bill-pay
- open-banking
- virtual-iban
Where teams use this data
Diaspora remittance reconciliation
A family office or payroll sender matches each booked corridor to remittanceId, sendAmount, receiveAmount and transferStatus so EUR outflows to NGN/XOF wallets land on the same night's ledger.
Wallet and card spend monitoring
A treasury bot reads availableBalance, walletBalance and refundableBalance, then diffs unified-tx-history cashbackAmount and card last4 against the Marqeta spend card.
Payout-recipient directory
A compliance screen pulls recipientName, recipientPhone, payoutCountry and paymentMethod (mobile wallet vs bank) to keep beneficiary KYC in sync with send-again.
Open-banking debit matching
A Lean-connected funding flow joins connectionDetails.iban and intentId to withdrawV2 cash-outs so open-banking debits and wallet withdrawals share one accountHolder.
Frequently asked questions
What money-movement fields sit behind Taptap Send?
Each booked send carries remittanceId, sendAmount, receiveAmount, fxRate, corridor and transferStatus. The activity list also joins transferId and a unified feed that mixes remittance, wallet and card cashback rows.
Does the app expose a wallet or card balance?
Yes. The Marqeta card returns availableBalance and last4; the in-app wallet returns walletBalance on statements and refundableBalance after a bank cash-out. A virtual IBAN (accountHolder, iban, bankName) tops up the same wallet.
How do senders authenticate?
Phone OTP, Google or Apple sign-in, plus Beyon eKey in the UAE. Later calls ride that session together with an anti-bot challenge token. Lean open-banking and strong customer authentication checks gate wallet withdrawals.
Which payout rails show up on recipients?
Saved recipients include recipientName, recipientPhone, payoutCountry and paymentMethod — mobile wallets such as M-Pesa, MTN, Orange Money and Wave, plus bank accountNumber / iban and cash pickup.
Apps similar to Taptap Send: Money Transfer
- Remitly: Send Money & Transfer — Remitly is a Seattle-based remittance app that sends to bank accounts, mobile wallets or cash-pickup locations in 175-plus countries.
- Wise: International Transfers — Wise is an international money app that sends to 140-plus countries at the mid-market exchange rate and holds a multi-currency account.
- WorldRemit — WorldRemit is a London-based digital remittance app that sends to more than 130 countries, with payout via bank deposit, mobile money, cash pickup or airtime top-up.
- Western Union Send Money Now — Western Union sends money in its app, online or at agent locations to cash pickup, bank accounts or mobile wallets in 200-plus countries and territories.
- Sendwave — Sendwave is a Zepz remittance app that started with Kenya and Ghana and pays out via bank deposit, mobile wallet, cash pickup or airtime top-up in African and other emerging markets.
- Xoom: Send Money & Transfer — Xoom is PayPal's digital money-transfer service that sends from the United States, Canada, the United Kingdom and select European countries to bank accounts, mobile wallets or cash pickup in 160 countries.
- Ria Money Transfer — Ria Money Transfer is a Euronet Worldwide subsidiary that specializes in customer-to-customer international remittances through a global agent network and a mobile app.
- MoneyGram — MoneyGram is a Dallas-based peer-to-peer money-transfer company that sends funds for cash pickup, mobile wallet or bank deposit through about 400,000 agent offices in more than 200 countries and territories.
Topics
- taptap send api
- remittance fx rate
- remittanceId
- wallet balance
- availableBalance
- recipient payout
- lean open banking
- virtual iban
- card cashback
- bill pay africa
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use