Ruka uende kwenye yaliyomoSkip to Content
Marejeo ya APIUthibitishaji wa Mpokeaji

Recipient Verification API

Thibitisha taarifa za mpokeaji kabla ya kutuma malipo ili kuhakikisha usahihi na kupunguza miamala iliyoshindwa.

Thibitisha Uhamishaji wa Pesa za Simu

Thibitisha nambari ya pochi ya pesa za simu kabla ya uhamishaji.

POST /business/verify-transfer

Mwili wa Ombi

SehemuAinaInahitajikaMaelezo
countryCodestringNdiyoMsimbo wa nchi: KE, TZ, UG, ZA
phoneNumberstringNdiyoNambari ya simu yenye kiambishi cha kimataifa

Mfano wa Ombi — Nambari ya TESTENV ya Kenya

curl -X POST https://api.test.wakapay.io/business/verify-transfer \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "countryCode": "KE", "phoneNumber": "+254700000001" }'
const response = await fetch( "https://api.test.wakapay.io/business/verify-transfer", { method: "POST", headers: { Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json", }, body: JSON.stringify({ countryCode: "KE", phoneNumber: "+254700000001", }), }, ); const data = await response.json(); console.log(data);

Jibu

{ "displayName": "Amina Mjema", "receiverPhone": "+254700000001", "verified": true }

Sehemu za Jibu

SehemuAinaMaelezo
verifiedbooleanIkiwa mpokeaji amethibitishwa kwa mafanikio
displayNamestringJina lililosajiliwa la mmiliki wa akaunti
receiverPhonestringNambari ya simu iliyothibitishwa

Nambari za Simu za Majaribio za TESTENV

Tumia nambari hizi za simu kwa kujaribu uhamishaji wa pesa za simu:

NchiNambari ya SimuUthibitishajiJina la Onyesho
Kenya (KE)+254700000001verified: trueAmina Mjema
Tanzania (TZ)+255700000001verified: trueAmina Mjema

Nambari za simu zisizo za majaribio zitarudisha verified: false na displayName tupu katika TESTENV.

Mfano wa Ombi — Nambari ya TESTENV ya Tanzania

curl -X POST https://api.test.wakapay.io/business/verify-transfer \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "countryCode": "TZ", "phoneNumber": "+255700000001" }'

Jibu — Tanzania

{ "displayName": "Amina Mjema", "receiverPhone": "+255700000001", "verified": true }

Mfano wa Jibu — Nambari Isiyo ya Majaribio

{ "displayName": "", "receiverPhone": "+254712345678", "verified": false }

Thibitisha Malipo (Till/Paybill)

Thibitisha nambari ya Paybill au Till kabla ya malipo.

POST /business/verify-payment

Tofauti kati ya Till na Paybill:

  • Till (Lipa Number) — Hakuna rejea ya akaunti inayohitajika. Malipo yanaenda moja kwa moja kwa nambari ya till.
  • Paybill — Inahitaji rejea ya akaunti. Malipo yanaenda kwa nambari ya paybill na rejea maalum ya akaunti kwa ufuatiliaji.

Mwili wa Ombi la Till/Paybill

SehemuAinaInahitajikaMaelezo
countryCodestringNdiyoMsimbo wa nchi: KE, TZ, UG, ZA
typestringNdiyoAina ya malipo: till au paybill
lipaNumberstringNdiyoNambari ya Till au Paybill
accountReferencestringShartiRejea ya akaunti (inahitajika kwa paybill, acha kwa till)

Nambari za Lipa za Majaribio za TESTENV

Tumia nambari hizi kwa kujaribu malipo ya till/paybill:

NchiAinaNambari ya LipaRejea ya AkauntiJina la Onyesho
Kenya (KE)Till888880-Ugali Point
Kenya (KE)Paybill123456ABC123Ugali Point Paybill
Tanzania (TZ)Till600000-Ugali Point
Tanzania (TZ)Paybill700000ABC123Ugali Point Paybill

Mfano wa Ombi — Till ya Kenya

curl -X POST https://api.test.wakapay.io/business/verify-payment \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "countryCode": "KE", "type": "till", "lipaNumber": "888880" }'
const response = await fetch( "https://api.test.wakapay.io/business/verify-payment", { method: "POST", headers: { Authorization: `Bearer ${accessToken}`, "Content-Type": "application/json", }, body: JSON.stringify({ countryCode: "KE", type: "till", lipaNumber: "888880", }), }, ); const data = await response.json(); console.log(data);

Jibu — Till

{ "displayName": "Ugali Point", "verified": true }

Mfano wa Ombi — Paybill ya Kenya

curl -X POST https://api.test.wakapay.io/business/verify-payment \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "countryCode": "KE", "type": "paybill", "lipaNumber": "123456", "accountReference": "ABC123" }'

Jibu — Paybill

{ "displayName": "Ugali Point Paybill", "verified": true }

Hali ya Uthibitishaji

HaliMaelezoHatua
verified: trueMpokeaji yupo na anaweza kupokea malipoEndelea na malipo
verified: falseMpokeaji hayupo au hafanyi kazi katika TESTENVAngalia taarifa na ujaribu tena, au amilisha akaunti kwa uzalishaji

Matumizi

Thibitisha Kabla ya Uhamishaji wa Pesa za Simu

async function sendVerifiedTransfer( amount, currency, phoneNumber, countryCode, reference, ) { // Step 1: Verify recipient const verifyResponse = await fetch( "https://api.test.wakapay.io/business/verify-transfer", { method: "POST", headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json", }, body: JSON.stringify({ countryCode: countryCode, phoneNumber: phoneNumber, }), }, ); const verifyData = await verifyResponse.json(); if (!verifyData.verified) { throw new Error("Recipient verification failed"); } // Step 2: Use verified name in transfer console.log(`Sending to: ${verifyData.displayName}`); // Step 3: Send transfer const transferResponse = await fetch( "https://api.test.wakapay.io/business/payout/transfer", { method: "POST", headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json", }, body: JSON.stringify({ senderCurrency: "USD", receiverCurrency: currency, amount: amount, receiverPhone: phoneNumber, payoutCountry: countryCode, businessReference: reference, // ... other required fields }), }, ); return await transferResponse.json(); }

Thibitisha Kabla ya Malipo ya Till/Paybill

async function sendVerifiedPayment( amount, currency, lipaNumber, type, countryCode, reference, ) { // Step 1: Verify payment recipient const verifyPayload = { countryCode: countryCode, type: type, lipaNumber: lipaNumber, }; // Add account reference for paybill if (type === "paybill") { verifyPayload.accountReference = "ABC123"; } const verifyResponse = await fetch( "https://api.test.wakapay.io/business/verify-payment", { method: "POST", headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json", }, body: JSON.stringify(verifyPayload), }, ); const verifyData = await verifyResponse.json(); if (!verifyData.verified) { throw new Error("Payment recipient verification failed"); } console.log(`Paying to: ${verifyData.displayName}`); // Step 2: Send payment const paymentResponse = await fetch( "https://api.test.wakapay.io/business/payout/payment", { method: "POST", headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json", }, body: JSON.stringify({ type: type, senderCurrency: "USD", receiverCurrency: currency, amount: amount, receiverLipaNumber: lipaNumber, payoutCountry: countryCode, businessReference: reference, // ... other required fields }), }, ); return await paymentResponse.json(); }

Majibu ya Makosa

400 — countryCode Inakosekana

{ "code": 0, "error": "countryCode is required" }

400 — countryCode Isiyo Sahihi

{ "code": 0, "error": "countryCode must be one of: KE, TZ, UG, ZA" }

400 — phoneNumber Inakosekana

{ "code": 0, "error": "empty mobile number" }

400 — Muundo wa Simu Usio Sahihi

{ "code": 0, "error": "phoneNumber must use the correct international prefix for the given countryCode" }

400 — type Inakosekana (verify-payment)

{ "code": 0, "error": "type must be \"paybill\" or \"till\"" }

400 — type Isiyo Sahihi (verify-payment)

{ "code": 0, "error": "type must be \"paybill\" or \"till\"" }

400 — lipaNumber Inakosekana

{ "code": 0, "error": "lipaNumber is required" }

401 — Hakuna Authorization

{ "message": "missing value in request header" }

Mbinu Bora

  1. Daima thibitisha kwanza — Inazuia malipo yaliyoshindwa na kupunguza gharama
  2. Onyesha matokeo ya uthibitishaji — Onyesha displayName kwa mtumiaji kwa uthibitisho
  3. Shughulikia wapokeaji wasiothibitishwa — Onyesha ujumbe wa makosa wazi
  4. Tumia nambari za TESTENV kwa majaribio — Tumia nambari za majaribio zilizotolewa katika mazingira ya majaribio
  5. Jumuisha accountReference kwa paybill — Inahitajika kwa malipo ya aina ya paybill

Nchi Zinazoungwa Mkono

  • KE — Kenya
  • TZ — Tanzania
  • UG — Uganda
  • ZA — Afrika Kusini

Yanayohusiana

Imesasishwa mwisho tarehe