Escrow Safe Trade is live: protect your next high-value deal Learn more
Products Payment links & checkoutM-Pesa, cards, invoices, split payoutsEscrow Safe TradeMilestone and release-based escrowWallets & P2PPersonal and business walletsChama, Lengo & DeniGroup savings, goals and IOUsBusiness toolkitAccounting, payroll, POS, ticketingBulk payments & payrollPay many people in one uploadSubscriptions & billingRecurring plans and renewalsRent, loans & donationsCollections and campaignsAll products
Solutions MerchantsBuyersChama groupsBusiness solutionsIndustries
Pricing
Developers Developer overviewQuickstart, auth and sandboxREST APIsCheckout, invoices and requestsWebhooksSigned, real-time eventsWallet-as-a-ServiceVirtual sub-accountsDocumentationGuides and API reference
Security
Company About usCareersPartnersEvents & ticketsBlogHelp centreContact us
Log in Get started Talk to sales
Get started

Error Codes

How Paysasa signals failure: HTTP statuses for branching, plus machine-readable codes for verification and KYC problems.

Base URLhttps://api.paysasa.com/api/v1Authx-api-keyFormatJSON

Prefer HTTP status for branching. For verification / KYC failures use the machine code field when present (HTTP 403, not 422).

HTTP Status Meaning Common Cause
400 Bad Request Missing or invalid parameters
401 Unauthorized Missing or invalid API key
403 Forbidden API key scope, business unverified/suspended, or KYC required
404 Not Found Resource doesn't exist or belongs to another account
409 Conflict Session already paid/expired, or ownership transfer already open
422 Unprocessable Insufficient balance or invalid business state
429 Rate Limited Too many requests or OTP attempts — back off and retry
500 Server Error Paysasa server error — contact support
code HTTP When
business_unverified 403 Business not verified (checkout/Lengo/WaaS/money ops)
business_suspended 403 Business suspended
owner_kyc_unverified 403 Owner KYC required for business money features
kyc_required_for_withdrawal 403 Personal withdrawal KYC gate
Response · JSON
// Typical error shape (code present on compliance gates)
{
  "error": "Business must be verified before checkout",
  "code": "business_unverified"
}