Invoice & Receipt Automation
Extract structured fields from invoices and receipts, then sync to accounting systems.
Use OCR, location intelligence, and developer infrastructure APIs with secure keys, practical docs, and tooling built for production teams.
# OCR Extraction
curl -X POST https://api.pezamw.com/v1/ocr/text \
-H "X-API-Key: pk_live_***" \
-F "image=@invoice.jpg"
{
"success": true,
"text": "Invoice #3208",
"confidence": 0.96
}
Active APIs in your system right now. Click any card to sign in.
High-value use cases teams can launch quickly with peza dev lite APIs.
API Plug-in
Live Integration
Instant Connect
Extract structured fields from invoices and receipts, then sync to accounting systems.
Show nearest hospitals, police, and services by radius during critical moments.
Generate signed test payloads and verify receiver logic before production rollout.
Launch passwordless and 2FA flows quickly with OTP send/verify endpoints.
Capture identity details from uploaded forms/IDs and validate data before approval.
Combine geo + OCR outputs for teams coordinating incidents and service dispatch.
A practical path from signup to production traffic.
Use these production-safe examples in your apps. Switch language and copy directly.
import requests
import time
api_key = "YOUR_API_KEY"
url = "https://developers.pezamw.com/api/locations/"
headers = {"X-API-Key": api_key}
params = {"location": "Lilongwe", "category": "hospital", "radius": 5000}
transient = {429, 500, 502, 503, 504}
for attempt in range(1, 5):
response = requests.get(url, headers=headers, params=params, timeout=25)
if response.status_code not in transient:
break
if attempt < 4:
time.sleep(2 * attempt)
data = response.json()
print(data)
const url = "https://developers.pezamw.com/api/locations/";
const apiKey = "YOUR_API_KEY";
const params = new URLSearchParams({
location: "Lilongwe",
category: "hospital",
radius: "5000",
});
fetch(`${url}?${params}`, {
method: "GET",
headers: { "X-API-Key": apiKey },
})
.then((res) => res.json())
.then((data) => console.log(data))
.catch((err) => console.error(err));
curl -G "https://developers.pezamw.com/api/locations/" \ -H "X-API-Key: YOUR_API_KEY" \ --data-urlencode "location=Lilongwe" \ --data-urlencode "category=hospital" \ --data-urlencode "radius=5000"
<?php $url = "https://developers.pezamw.com/api/locations/"; $params = http_build_query([ "location" => "Lilongwe", "category" => "hospital", "radius" => 5000, ]); $ch = curl_init($url . "?" . $params); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ["X-API-Key: YOUR_API_KEY"], CURLOPT_TIMEOUT => 25, ]); $response = curl_exec($ch); curl_close($ch); echo $response; ?>
import os
import requests
API_KEY = os.getenv("PEZA_API_KEY", "YOUR_API_KEY")
OCR_ENDPOINT = "https://api.pezamw.com/v1/ocr/text"
HEALTH_ENDPOINT = "https://api.pezamw.com/health"
print(requests.get(HEALTH_ENDPOINT, timeout=12).json())
with open("m.jpg", "rb") as f:
res = requests.post(
OCR_ENDPOINT,
files={"image": f},
headers={"X-API-Key": API_KEY},
timeout=35,
)
print(res.status_code, res.json())
import axios from "axios";
import fs from "fs";
import FormData from "form-data";
const apiKey = process.env.PEZA_API_KEY || "YOUR_API_KEY";
const healthUrl = "https://api.pezamw.com/health";
const ocrUrl = "https://api.pezamw.com/v1/ocr/text";
console.log((await axios.get(healthUrl, { timeout: 12000 })).data);
const form = new FormData();
form.append("image", fs.createReadStream("m.jpg"));
const ocr = await axios.post(ocrUrl, form, {
headers: { ...form.getHeaders(), "X-API-Key": apiKey },
timeout: 35000,
});
console.log(ocr.status, ocr.data);
# Health curl "https://api.pezamw.com/health" # OCR text curl -X POST "https://api.pezamw.com/v1/ocr/text" \ -H "X-API-Key: YOUR_API_KEY" \ -F "image=@m.jpg"
<?php
$apiKey = getenv("PEZA_API_KEY") ?: "YOUR_API_KEY";
// Health check
$health = file_get_contents("https://api.pezamw.com/health");
echo $health . PHP_EOL;
// OCR request
$ocrCh = curl_init("https://api.pezamw.com/v1/ocr/text");
curl_setopt_array($ocrCh, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["X-API-Key: $apiKey"],
CURLOPT_POSTFIELDS => ["image" => new CURLFile("m.jpg")],
]);
echo curl_exec($ocrCh) . PHP_EOL;
curl_close($ocrCh);
?>
Answers to common implementation and production questions.
Send your key through the X-API-Key header. Manage and rotate keys in your dashboard.
Yes. Start on free, test integration, and upgrade when request volume grows.
Yes. Configure endpoint URLs, secrets, event filters, and retry behavior in the webhooks page.
Most teams can make successful API calls in under an hour using docs and test keys.
Need technical guidance, architecture support, or billing assistance?
Reach out for onboarding, troubleshooting, and production support.
API systems operational
Use the support page in dashboard for ticketed issues with request IDs and event traces.