Bring context to every payment.
Use a resolved number alongside verified references and receipts to help connect M-Pesa payments to your customer records.
Explore hash lookupsA clearer connection to your payments
Resolve supported M-Pesa phone-number hashes with one simple API. Less friction for your team. More clarity for your business.
KES 10.00 starting credit No subscription
7132104d6aae9c3fac82095a42c2817952bca48e09d98d5bf4ac08218982fb90One request. A supported hash. That's all it takes.
Match found
+254 7•• ••• •••
A phone-number reference for your workflow.
LESS FRICTION. MORE POSSIBILITIES.
Keep your systems. Give them a clearer picture.
Use a resolved number alongside verified references and receipts to help connect M-Pesa payments to your customer records.
Explore hash lookupsWork through up to 5,000 hashes in a CSV. Download structured results and only pay for matched rows.
Meet the batch APIValidate Kenyan phone-number formats through the API, or generate a hash in the free lookup tool.
Explore the lookup toolBUILT FOR DEVELOPERS
A straightforward REST API that fits into the stack you already use. Clear requests, structured responses, and documentation that gets you moving.
Start with KES 10.00 in credit.
Keep it secret on your server.
Send a supported hash. Work with the result.
curl -X POST https://api.dehashit.com/api/v1/msisdn/decrypt/ \
-H "X-Api-Key: dh_live_..." -H "Content-Type: application/json" \
-d '{"msisdn_hash": "7132104d6aae9c3fac82095a42c2817952bca48e09d98d5bf4ac08218982fb90"}'import requests
res = requests.post(
"https://api.dehashit.com/api/v1/msisdn/decrypt/",
headers={"X-Api-Key": "dh_live_..."},
json={"msisdn_hash": "7132104d6aae9c3fac82095a42c2817952bca48e09d98d5bf4ac08218982fb90"},
timeout=10,
)
data = res.json()["data"]
print(data)const res = await fetch("https://api.dehashit.com/api/v1/msisdn/decrypt/", {
method: "POST",
headers: { "X-Api-Key": "dh_live_...", "Content-Type": "application/json" },
body: JSON.stringify({ msisdn_hash: "7132104d6aae9c3fac82095a42c2817952bca48e09d98d5bf4ac08218982fb90" }),
});
const { data } = await res.json();
console.log(data);package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]string{
"msisdn_hash": "7132104d6aae9c3fac82095a42c2817952bca48e09d98d5bf4ac08218982fb90",
})
req, _ := http.NewRequest("POST", "https://api.dehashit.com/api/v1/msisdn/decrypt/", bytes.NewReader(body))
req.Header.Set("X-Api-Key", "dh_live_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
fmt.Println(res.Status)
}Real request examples. Replace the example key and hash with your own.
SIMPLE BY DESIGN
Usage-based pricing, without a subscription.
KES 0.10
Per successful lookup. No match? No charge.
KES 10.00
Starting credit on every new account. Top up anytime with M-Pesa.
KES 0.00
Phone validation, forward hashing, and interactive documentation.
A LITTLE MORE CLARITY
A few things to know before your first lookup.
Dehash It resolves supported M-Pesa phone-number hashes to their original Kenyan phone numbers. Use the lookup tool or integrate the API into your application.
Your application can use a returned phone number alongside verified payment references and receipts to help match M-Pesa payments with customer records. Your business stays in control of payment verification and reconciliation.
For an authorized payment enquiry, a supported lookup can give your team a phone-number reference to check against your own customer and transaction records. It does not verify the payer's identity or replace the payment provider's confirmation.
Not necessarily. Your developer can integrate Dehash It into an existing application or back-office workflow, so your team can use lookup results alongside the tools it already uses. Read the integration documentation to get started.
The service supports designated Kenyan mobile phone numbers and compatible M-Pesa phone-number hashes. See the supported inputs in our documentation for coverage and input requirements.
You can browse the documentation and use the free phone-number-to-hash tool without signing in. You need an account to resolve hashes or create API keys. Phone-number validation through the API is free, but still requires an API key.
Each successful hash match costs KES 0.10 from your prepaid wallet. Unmatched hashes, invalid requests, and service errors are not charged. New accounts start with KES 10.00 in credit, and you can top up with M-Pesa. See pricing and top-up options.
Create an account, generate a key in the API keys dashboard, and send it in the X-Api-Key header from your server. Keep your key secret. The documentation includes request examples, authentication, rate limits, and retry guidance.
Yes. The batch API accepts CSV files with up to 5,000 data rows and a maximum size of 2 MiB. Include an msisdn_hash column; only matched rows are charged. See the batch documentation for the file format and how to download results.
A lookup may not return a result if the input is not supported or a match is unavailable. No match does not prove that the underlying phone number is inactive or nonexistent, and you are not charged.
No. A match does not verify subscriber identity, number ownership, or whether a number is active. Carrier information is based on the original number prefix and may not reflect a ported number's current network.
Only submit and use personal data when you have an appropriate lawful basis and authorization. Do not use the service for unauthorized harvesting, spam, harassment, or surveillance. Read our Terms of Service and Privacy Policy for usage rules and data-handling information.
Visit Support or email support@dehashit.com. For a specific lookup or payment issue, include your account email and the event timestamp. Never send passwords, API secrets, or full customer phone numbers.
YOUR NEXT CONNECTION STARTS HERE
A simple API. A clearer workflow.
Make your first connection with Dehash It.
Start with KES 10.00 in credit.